c++ - 将参数传递给 _beginthread 函数

标签 c++ multithreading pointers beginthread

我有以下代码来启动一个新线程

int number = 10;
_beginthread(ModbusReadWrite, 0, (void*)number);

函数是:

void ModbusReadWrite(void *arg)
{
    char inBuffer[BUF_SIZE];
    int PointNumber = &arg;
    ...
}

显示错误:

error C2440: 'initializing' : cannot convert from 'void **' to 'int'

因此,我需要定义新的 int 类型参数并将其传递给 ModbusReadWrite() 函数。我怎样才能实现它?

最佳答案

void* 参数可用于传递任何内容。但是获取它的地址是没有意义的:

int PointNumber = (int)arg;

关于c++ - 将参数传递给 _beginthread 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21744803/

相关文章:

C++:从外部更改在 lambda 中捕获的变量

java - "synchronize"到底做了什么?

c++ - 并行化 SVD 计算 c++

java - notify() -> 等待集中的所有线程都必须退出

c++ - 对于 notepad++ 的 c++ 调试器有什么建议吗?

c++ - 对指向数组的数据结构进行排序 C++

c++ - 如何使用 "Curiously recurring template"模式

c++ - 如何正确处理垃圾收集并避免使用自定义对象指针集合的内存泄漏...?

c - 在结构中使用多维数组

c++ - 在堆中创建和使用数组