Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用vc++;C语言中的动态链接库#_C#_.net_Windows_Visual C++_Dll - Fatal编程技术网

C# 使用vc++;C语言中的动态链接库#

C# 使用vc++;C语言中的动态链接库#,c#,.net,windows,visual-c++,dll,C#,.net,Windows,Visual C++,Dll,我正在从事一个c#crawler/Poster项目,它可以抓取wordpress的博客、网站,使用WebClient下载内容 Wordpress网站使用WebClient的一个bug或我不知道的bug,出于某种原因,它不接受Wordpress博客中的所有cookie,这可能是阻止自动机器人、垃圾邮件发送者的一种措施 所以决定使用Sockets,但似乎Sockets也有一些问题,它有时不会返回完整响应,所以不可靠,但我在VC++中找到了一个很好的工作代码,我正在尝试在C#中使用它,但我根本不知道V

我正在从事一个c#crawler/Poster项目,它可以抓取wordpress的博客、网站,使用WebClient下载内容

Wordpress网站使用WebClient的一个bug或我不知道的bug,出于某种原因,它不接受Wordpress博客中的所有cookie,这可能是阻止自动机器人、垃圾邮件发送者的一种措施

所以决定使用Sockets,但似乎Sockets也有一些问题,它有时不会返回完整响应,所以不可靠,但我在VC++中找到了一个很好的工作代码,我正在尝试在C#中使用它,但我根本不知道VC++

这是你的电话号码

如何创建上述代码的dll

我使用vc++创建了一个简单的dll项目,但无法在项目中包含上述代码


更新链接到

使用C++代码创建类库并添加到C项目中作为引用。

可以使用平台调用,为需要的每个函数创建声明。下面是导入
MessageBox
WinAPI函数的示例(请注意,这与.NET中的MessageBox类不同!)


既然我已经下载了你的代码,我可以这么说

即使我们编译了这段代码,我们仍然需要在C++和C语言之间进行正常的重联。代码还没有准备好。http_download.h文件是一大组内联类。从C++中调用C++代码的指令是很长的。基本上,您必须将此代码编译为DLL。然后从DLL导出一组“C”函数,这些函数调用C++来做你想做的事情。或将C++类转换为类型库的COM对象。

但让我们来分析一下你真正想做什么:

您想抓取网页,但WebClient无法工作

所以我认为你想问的真正问题是:

为什么WordPress不接受我的网络客户端cookie

我真的不知道答案,因为你没有分享你的网络客户端代码,也没有详细阐述你认为可能存在的问题。但我打赌这是一个很容易解决的问题

我确信WebClient比使用C++代码的10倍更容易使用。这比使用纯套接字构建HTTP库要容易100倍(这就是WebClient,但它支持您需要的所有功能,但尚未实现)


对不起,如果我很粗鲁的话。我正试图鼓励您以一种比艰难的方式更好的方式来思考这个问题。

您代码的链接会将我带到一个向我索要信用卡的网站。也许Dropbox或Microsoft Skydrive更容易共享。在右侧向下滚动显示“慢速下载”,它将免费下载。抱歉,麻烦了,1分钟我正在放置Skydrive链接,抱歉,againI收到了它。不用麻烦了。我很快会写一些评论。你能展示一下你用
WebClient
尝试过的代码,并提供一个网站的例子吗?正如我已经说过的,我对vc++不太了解,请告诉我如何使用这些代码,以及我应该做些什么,我下载的原始链接是@downvoter:你能留下一个downvoter的原因吗?
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);