永发信息网

WINAPI里的CreateThread函数

答案:2  悬赏:70  手机版
解决时间 2021-04-04 17:50
某个类里,public部分有该语句
ThreadHandle = CreateThread(NULL, 0, Run, NULL, 0, &ThreadID);
其中ThreadID为DWORD,
Run是该类private里的一个函数,定义如下:
DWORD WINAPI Run(LPVOID LpParameter)

编译的时候错误,说是实参与形参不兼容。请问C++里线程的Run部分不能像其他语言那样放在类中么?

环境Visual Studio 2010, .NET 4
没用C++写过多线程,感觉不好用。用的是windows.h里的WINAPI
最佳答案
传给CreateThread的函数,必须是全局函数或静态函数,不能使用类的普通函数
即,你可以使用如下函数声明:
static DWORD WINAPI Run(LPVOID LpParameter);
因为类的普通函数会传递类对象指针作为隐含参数,所以与CreateThread所要求的函数类型不匹配
全部回答
把这个函数声明为static 就可以了,主要是CreateThread()是在整个进程生存的,Run 声明为类的成员函数,类死了,这个函数就死了,他的生存范围小于了CreateThread(); 所以,RUN可以为全局函数,或者是声明为类的静态函数,就可以解决问题。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
方便面吃多了有哪些危害呢?
单选题光滑水平面上有大小相同的A、B两球在同
北海道什么季节去好,去日本买什么好呢?哪些
《我来到新班级》作文 600字
猜成语海豚一只红色一只蓝色
黑龙江自考行政管理课程设置?
怎样把句子写具体如果,作文课《怎样把句子写
两瓶装52度赖茅台酒多少钱
单选题下列对新文化运动的评价,不正确的是A.
鹩哥怎么鉴定公母,鹩哥怎么分公母啊帮我看看
聊斋3之江城最后大家抢的那是什么
苹果手机里面之前用91助手同步进去的照片文件
浅谈如何提高订单执行效率
小便有痣代表什么意思
钢琴和笛子不可能发出相同的声音,是因为下列
推荐资讯
7.下列资金属于股权资本的是()A.可转换债券B.
2015年a股实行定增的个股有哪些
儿童爱吃的豆腐怎么做
如何买BIGBANG10周年展览会门票
单选题相同温度下,中和10mLpH=10的氨水,需
红线人读后感200字
景强汽修怎么去啊,有知道地址的么
我弟弟在8月射了四次精,有什么坏处
求一张魔兽争霸HERO PK地图
单选题下列各句中,标点符号使用正确的一句是
谁讲下,猫和老鼠的故事
夫妻之间女方出门男方不让出门算是违法么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?