这是我第一次处理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知道问题出在哪里?
(我正在使用视窗xp)
谢谢。
好吧,不知道你有什么错误。但可以为您提供一个很好的例子
#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。
让我猜猜:readFromPort
必须返回一个值?
下次也请添加错误。
好吧,如果您提供一个最小的代码示例和至少一个编译错误,那就太好了。但是好吧,我会假装自己是编译器。假设你的代码片段在一个函数内,你有一个函数声明:
DWORD WINAPI readFromPort(LPVOID lpParam ){}
我相信这把你搞砸了。您必须声明/定义其他函数范围之外的函数。
此外,readFromPort
函数是在调用CreateThread
之后声明的,该函数被引用为参数。因此,即使您将所有这些放在全局范围内,它也不会起作用(这本身就是一个坏主意)。