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)
{
}
}