读书人

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

发布时间: 2013-12-26 00:35:35 作者: rapoo

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

读书人网 >C++ Builder

热点推荐