首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

BCB6 Thread 不能在 .h檔中宣告?该如何处理

2013-12-26 
BCB6 Thread 不能在 .h檔中宣告?请问我建立了一个 Thread ObjectClass Name TthNamed Thread myThread

BCB6 Thread 不能在 .h檔中宣告?
请问
我建立了一个 Thread Object
Class Name = Tth
Named Thread = myThread

为什么我在主class.h内

宣告 Tth *th;
这样不行?
出现 
[C++ Error] Unit1.h(21): E2303 Type name expected 
[C++ Error] Unit1.h(21): E2139 Declaration missing ;
错误


另外请问 Named Thread 有什么用?
[解决办法]
[C++ Error] Unit1.h(21): E2303 Type name expected 
[C++ Error] Unit1.h(21): E2139 Declaration missing ;

这种错误提示很显然是你输入漏了一些匹配的符号,诸如漏了个 } 或 ; 之类的







命名线程会额外声明一个结构体 tagTHREADNAME_INFO,和一个 privte 函数 void SetName()


 // 这个结构体的内容很明确,但在什么场景下使用俺不清楚,等楼下解答
  typedef struct tagTHREADNAME_INFO
  {
    DWORD dwType;     // 必须为 0x1000
    LPCSTR szName;    // 线程名(在用户地址空间)
    DWORD dwThreadID; // 线程ID (-1 = 调用方线程)
    DWORD dwFlags;    // 为将来预留的, 必须为0
  } THREADNAME_INFO;

void TMyThread::SetName()
{
    THREADNAME_INFO info;
    info.dwType = 0x1000;
    info.szName = "TMyThreadObj";
    info.dwThreadID = -1;
    info.dwFlags = 0;

    __try
    {
         RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(DWORD),(DWORD*)&info );
    }
    __except (EXCEPTION_CONTINUE_EXECUTION)
    {
    }
}

热点排行