5
我想,当你加载他 由于某种原因,线程函数没有做任何事情。要创建一个DLL,这将创建一个线程:\无法调用dll文件线程
,这是我的代码:
dllthread!= null ..为什么它不工作?
#include "stdafx.h"
DWORD WINAPI ThreadProc(
__in LPVOID lpParameter
)
{
std::ofstream myfile;
myfile.open ("example.txt");
myfile << "Writing this to a file.\n";
myfile.close();
return 0;
}
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
DWORD DllThreadID;
HANDLE DllThread; //thread's handle
DllThread=CreateThread(NULL,0,&ThreadProc,0,0,&DllThreadID);
//
if (DllThread == NULL)
MessageBox(NULL, L"Error", L"Error", MB_OK);
CloseHandle(DllThread);
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
不要这样做。从DllMain创建线程是一个[坏主意](http://blogs.msdn.com/b/oldnewthing/archive/2007/09/04/4731478.aspx)。 –
那你建议我做什么?我需要从一个dll文件创建一个线程。 – DanR
丹,你是否拥有加载该DLL的应用程序的源代码? – hmjd