C++ Cli WebClient 不在 dll 中工作
C++ Cli WebClient not working in a dll
我正在尝试使用 C++/Cli 中的 WebClient 从网址下载字符串。
但是,在将 dll 注入本机进程后它失败了。
这是我的代码:
#include <Windows.h>
using namespace System;
using namespace System::Net;
using namespace System::Windows;
using namespace System::Windows::Forms;
BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL,_In_ DWORD fdwReason,_In_ LPVOID lpvReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH) {
System::Windows::Forms::MessageBox::Show("test");
WebClient web;
String^ Data = web.DownloadString("http://www.google.com");
System::Windows::Forms::MessageBox::Show(Data);
}
return TRUE;
}
在初始化数据字符串之前,它可以正常工作,但由于某种原因,执行会在那里停止。 MessageBox::Show("test");虽然有效,但之后什么都没有。
可能是什么原因造成的?
事实证明,您只需要 link 您的 managed/native 混合 dll 与 winsock 库 (ws2_32.lib) 并创建一个单独的下载线程。
我正在尝试使用 C++/Cli 中的 WebClient 从网址下载字符串。 但是,在将 dll 注入本机进程后它失败了。
这是我的代码:
#include <Windows.h>
using namespace System;
using namespace System::Net;
using namespace System::Windows;
using namespace System::Windows::Forms;
BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL,_In_ DWORD fdwReason,_In_ LPVOID lpvReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH) {
System::Windows::Forms::MessageBox::Show("test");
WebClient web;
String^ Data = web.DownloadString("http://www.google.com");
System::Windows::Forms::MessageBox::Show(Data);
}
return TRUE;
}
在初始化数据字符串之前,它可以正常工作,但由于某种原因,执行会在那里停止。 MessageBox::Show("test");虽然有效,但之后什么都没有。 可能是什么原因造成的?
事实证明,您只需要 link 您的 managed/native 混合 dll 与 winsock 库 (ws2_32.lib) 并创建一个单独的下载线程。