首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ - CreateThread -compilation错误

C++ - CreateThread -compilation错误
EN

Stack Overflow用户
提问于 2012-06-03 22:20:56
回答 3查看 393关注 0票数 0

这是我第一次接触windows。我试图创建线程,但我无法编译我的代码。

这是我的代码的一部分:

代码语言:javascript
复制
WORD _tid;
HANDLE  readerThread= CreateThread(0,0,readFromPort,0,0,&_tid); 
DWORD WINAPI readFromPort(LPVOID lpParam ){}

我也试过了:

代码语言:javascript
复制
LPDWORD_tid;
HANDLE  readerThread= CreateThread(0,0,readFromPort,0,0,_tid); 
DWORD WINAPI readFromPort(LPVOID lpParam ){}

都没有编译过。onyone知道问题出在哪里吗?

(我使用的是windows xp)

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-03 22:43:24

好吧,不知道你有什么错误。但我可以为你提供一个很好的例子

代码语言:javascript
复制
#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。
票数 2
EN

Stack Overflow用户

发布于 2012-06-03 22:36:15

让我猜猜:readFromPort必须返回值?

下一次也请添加错误。

票数 1
EN

Stack Overflow用户

发布于 2012-06-03 22:29:20

好吧,如果你提供了一个最小的代码示例和至少一个编译错误,那就更好了。不过,好吧,我会假装成一个编译器。假设您的代码片段在一个函数中,您在其中有一个函数声明:

代码语言:javascript
复制
DWORD WINAPI readFromPort(LPVOID lpParam ){}

我相信这会把你搞砸的。您必须在其他函数的作用域之外声明/定义函数。

此外,readFromPort函数是在调用CreateThread之后声明的,其中它被作为参数引用。因此,即使您将所有这些都放在全局范围内(这本身就是一个坏主意),它也不会起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10871089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档