none
CreateThread 程序中断 RRS feed

  • 问题


  • 程序结构:

    class MayiServer
    {
    public:
    	DWORD WINAPI recvMayi(LPVOID lpParam);
    };
    
    
    MayiServer *g_pMayiServer;
    void main()
    {
    
    CreateThread (NULL,0,(LPTHREAD_START_ROUTINE)g_pMayiServer->recvMayi((LPVOID)wParam),(LPVOID)wParam,NULL,NULL);
    
    }
    
    
    经调试发现:能经过编译,到这里程序自动中断。该怎么做?
    2009年12月21日 2:51

答案

  • g_pMayiServer这个全局的指针分配空间了吧。 

    另外你这个API中函数指针写的不对。


    麻烦把正确答案设为解答。
    • 已标记为答案 Nancy Shao 2009年12月29日 11:01
    2009年12月21日 6:09
    版主

全部回复

  • g_pMayiServer这个全局的指针分配空间了吧。 

    另外你这个API中函数指针写的不对。


    麻烦把正确答案设为解答。
    • 已标记为答案 Nancy Shao 2009年12月29日 11:01
    2009年12月21日 6:09
    版主
  • 有点儿乱,没太看明白,是说程序运行了 CreateThread 就没有响应了?还是报错了?

    SplendourG 说的没错,代码写成这样儿,也太过复杂了吧?因为没有具体调试这个程序,也无法知道具体情况。

    也有可能是线程函数本身写的有问题,可以在线程函数内部设置断点进行调试。

    2009年12月21日 9:10
    版主
  • 在CreateThread前,g_pMayiServer = new MayiServer;

    在类里面的函数是不能作为线程入口的,我没记错的话是不能编译通过的。
    你需要在前面加上static标示
    0xBAADF00D
    2009年12月25日 5:08
    版主