关于DLL里头创建的线程启动不了,跪求大神
关于DLL里面创建的线程启动不了,跪求大神
我用VS2010封装了一个DLL
DLLMain里面没有做任何操作
这个DLL里面有一个接口是创建一个线程。
调用的时候,接口能进去,但是线程启动不了。
请教大神们 是什么原因?
------解决方案--------------------
问题描述不够详细啊
------解决方案--------------------
Dll入口进去之后,你确定你调用了启动线程的接口了吗?
定义错误信息,根据返回的错误信息找原因。打log也可以
------解决方案--------------------
用这个代码试试
------解决方案--------------------
线程函数里面什么都没做,会不会被优化了? 加其他语句试试呢,类似输出什么的?
我用VS2010封装了一个DLL
DLLMain里面没有做任何操作
这个DLL里面有一个接口是创建一个线程。
调用的时候,接口能进去,但是线程启动不了。
请教大神们 是什么原因?
------解决方案--------------------
问题描述不够详细啊
------解决方案--------------------
Dll入口进去之后,你确定你调用了启动线程的接口了吗?
定义错误信息,根据返回的错误信息找原因。打log也可以
------解决方案--------------------
void CThreadTest::StartThread()
{
//m_hKill = CreateEvent(NULL,TRUE,FALSE,NULL);
//m_hExit = CreateEvent(NULL,TRUE,FALSE,NULL);
UINT uiThread;
DWORD dwThreadId;
//m_hThread = (HANDLE)_beginthreadex(NULL, 0, ThreadProc,this,NULL,&uiThread);
m_hThread = CreateThread(
NULL, // default security attributes
0, // use default stack size
(LPTHREAD_START_ROUTINE)ThreadProc, // thread function
this, // argument to thread function
0, // use default creation flags
&dwThreadId);
}
UINT CThreadTest::ThreadProc(LPVOID pParam)
{
CThreadTest* pThis = reinterpret_cast<CThreadTest*>(pParam);
int a = 1;
//SetEvent(pThis->m_hExit);
TRACE("Thread is running...")
return 2000;
}
用这个代码试试
------解决方案--------------------
线程函数里面什么都没做,会不会被优化了? 加其他语句试试呢,类似输出什么的?