急,急,急,久,久,久,闷,闷,闷,DLL中创建线程的问题,大家就帮帮我吧,都进来讨论啊
我想在dll里面创建线程,线程函数是dll内部的,创建函数也在dll内部的,
但是,为什么创建不起来,是不是我做错了什么,帮帮忙吧,有没有方法让我能够在dll里面创建并且执行线程的,这里高手多,我就靠大家了
代码如下:
void thread_code()
{
MessageBox("box","ok",MB_OK);
//这个框框一直不弹出来,按理说应该是10秒一个才对
//为什么会等到这个dll释放了,才弹出来,并且出错了
}
void begin()
{
for(int i=0;i<10;i++)
{
DWORD funid;
CreateThread(NULL, 0, thread_code, NULL, 0, &funid);
Sleep(10000);
}
}
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH:
//DisbaleThreadLibraryCalls,见文后
begin();
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return 1;
}
这个是上次的问题,我经过多方询问,大概知道了原因.
但是,问题仍然不得解啊,也许是我太笨了,
也寻到一个方法,DisbaleThreadLibraryCalls函数,只是,这个函数一直调用失败,郁闷自今,而且,放在begin函数的调用前面,是防止dll重复创建线程的意思,真的是这样解决问题吗?
总之,我还是没有解决问题,希望各位高手有另外的良方,大家都看看吧.