c++ - _beginthreadex 的参数类型错误

标签 c++ multithreading arguments beginthreadex

要定义我的头文件中的线程:

class HttpClient
{
public:
    ...
    unsigned int __stdcall  PerformLogin(void*);
    ...

};

然后在我的 cpp 文件中我有:

unsigned int __stdcall PerformLogin(void*){
...
}

并调用我使用的线程

hThread = (HANDLE)_beginthreadex( NULL, 0, &PerformLogin, NULL, 0, &threadID );

但是我在 &PerformLogin 上有一个错误说:

the args of type unsigned int (__stdcall HttpClient::)(void) is not compatible with the param unsigned int (__stdcall*)(void*).

我明白这个错误,但我真的不知道如何解决这个问题!

最佳答案

解决此问题的一种可能方法是使成员函数static,尽管这意味着PerformLogin() 没有this指针,并且无法访问 HttpClient 的非静态成员。

另一种方法是将 PerformLogin() 完全从 HttpClient 中移出,并使其成为一个免费函数。

关于c++ - _beginthreadex 的参数类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11289855/

相关文章:

c++ - gtkmm 2.4 的良好文档

multithreading - 并行执行计算量大的 map

将任务作为操作的 C# 动态方法调用

c++ - 如何在共享内存的同一区域上工作的两个进程之间共享锁?

javascript - 在 TypeScript 中将任意函数参数推断为对象或元组类型

c++ - 解码整数值

c++ - 这些代码与性能有关吗?一个非常快,另一个超过时间限制

c++ - 我应该尝试返回一个数组,还是有更好的解决方案?

c++ - 函数中的参数化变量类型 (c++)

c - 使用指针传递结构数组时遇到问题