这是我第一次处理Windows。我试图创建线程,但我无法编译我的代码。
这是我的代码的一部分:
WORD _tid;
HANDLE readerThread= CreateThread(0,0,readFromPort,0,0,&_tid);
DWORD WINAPI readFromPort(LPVOID lpParam ){}
我也尝试过:
LPDWORD_tid;
HANDLE readerThread= CreateThread(0,0,readFromPort,0,0,_tid);
DWORD WINAPI readFromPort(LPVOID lpParam ){}
既没有编译。 onyone知道这是什么问题?
(我正在使用windows xp)
感谢。
答案 0 :(得分:2)
#include "windows.h"
DWORD WINAPI readFromPort(LPVOID lpParam ){return 0;}
int _tmain(int argc, _TCHAR* argv[])
{
DWORD _tid;
HANDLE readerThread= CreateThread(0,0,readFromPort,0,0,&_tid);
return 0;
}
与你的不同之处:
_tid是DWORD,而不是WORD。
readFromPort返回值0。
答案 1 :(得分:1)
我猜:readFromPort
必须返回一个值吗?
下次请添加错误。
答案 2 :(得分:0)
嗯,如果你提供了一个最小的代码示例并且至少有一个编译错误,那就太好了。但很好,我会假装是一个编译器。假设您的代码片段在函数内部,那么您在其中有一个函数声明:
DWORD WINAPI readFromPort(LPVOID lpParam ){}
我相信这会搞砸你。您必须声明/定义其他函数范围之外的函数。
此外,readFromPort
函数在调用CreateThread
之后声明,其中它被作为参数引用。所以即使你把所有这些都放在一个全局范围内也是行不通的(这本身就是一个坏主意)。