读书人

C++的多线程有关问题 void (void *)

发布时间: 2013-04-09 16:45:09 作者: rapoo

求助,C++的多线程问题 void (void *)' to 'void (__cdecl *)(void *
写了一个关于多线程的程序,创建线程老是编译不通过,报错为 cannot convert parameter 1 from 'void (void *)' to 'void (__cdecl *)(void *)'

大致代码如下
首先是两个结构体
struct Prder
{
void CreatProduct(void* pArguments);//生产者生产一个产品
void ThreadCreatProduct();//线程
};
struct Consumer
{
void ConsumePrd(void* pArguments);//消费者消费一个产品
void ThreadConsumePrd();//线程
};

函数定义如下
void Consumer::ConsumePrd(void* pArguments)
{
//详细实现代码
//*******
}

void Prder::CreatProduct(void* pArguments)
{
//详细实现代码
//*******
}

void Consumer::ThreadConsumePrd()
{
_beginthread(ConsumePrd,0,NULL);//这里有错
}

void Prder::ThreadCreatProduct()
{
_beginthread(CreatProduct,0,NULL);//这里有错
}

我已经调整过VC6.0里边的多线程MT设置了,还是报错。在vs2008中也是类似的错误。
为什么啊?
看了windows程序设计中几个样例,也是类似的形式,为什么会通不过呢??
请高手解答,非常感谢
[解决办法]
是不是要加上__stdcall
[解决办法]
http://www.google.com.hk/search?hl=zh-CN&source=hp&biw=1440&bih=740&q=error+LNK2001%3A+unresolved+external+symbol+__CrtDbgReport&aq=f&aqi=g1g-m1&aql=&oq=&gs_rfai=
注意搜索的关键词,其他错误类似。

读书人网 >C++

热点推荐