我自己手写了线程的基类,其中包括 Init、Exit、Start,还有线程锁这些,然后集成这个基类的对象可以在exe中启动,但封装到dll中可以调用init、start,线程里面的循环却未执行,请高手指点啊。

解决方案 »

  1.   

    如果要提供基类,封装成lib,而不是dll
      

  2.   

    _declspec(dllexport) int InitSys(void)
    {
    g_pMyThread = new CMyThread;
    if(g_pEngineThread->Init() < 0)
    {
    return -1;
    }
    g_pMyThread->Start();
    }这个线程在exe里面可以执行
    封装成dll后,在外部调用什么初始化都成功了,但线程里面没有执行。
      

  3.   

    你用debug模式进dll里面去看看到底是什么原因啊
      

  4.   


    试过了,没有出错,只是发现线程的run里面没有被执行,现在问题就是线程里的循环为什么没有被执行。
      

  5.   

    g_pMyThread->Start();
    执行了,Start()没有运行,也没出错吗?
    那你先判断一下g_pMyThread是否有效,加一些错误捕捉
      

  6.   

    hook一下CreateRemoteThread,看是否创建成功