I am trying to create a dll which will create a thread when you load him for some reason the thread function is not doing anything.. :\
this is my code:
dllthread != null.. why its not working?
#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;
}
Instead of starting the thread from
DllMain()
export a function that would launch the thread instead:After calling
LoadLibrary()
useGetProcAddress()
to get access to thestart_thread()
function.Hope this helps.