VC++多线程创建的失败的问题(error C3867)
废话少说,先上代码//这个程序的主要代码如下,其余的代码都是VS2010自动生成的////这个程序的界面只有一个名为button1的按钮和两个label//voidone...
废话少说,先上代码
//这个程序的主要代码如下,其余的代码都是VS2010自动生成的//
//这个程序的界面只有一个名为button1的按钮和两个label//
void one(int i)
{ //这个函数将作为一个单独的线程运行
char ou[4];//不知什么原因,我无法使用ou[4]={‘0','1','2','3'}来初始化数组
ou[0]='0';//所以我用了这样的方式来初始化数组 不过这不是重点啦
ou[1]='0';
ou[2]='1';
ou[3]='\0';
String^ out;//一个用于输出的中间变量
out=System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)ou);
label1->Text=out;//让label1输出 “001”
ou[1]='1';//改变一个变量,准备下一次输出
out=System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)ou);
label2->Text=out;//让label2输出 011
Sleep(3000);//休眠3秒,准备下一次输出
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
HANDLE A= CreateThread( NULL,0,one,NULL.NULL,NULL);//本行错误 error C3867
}
//*****主要代码完毕*****//
系统提示错误为:
error C3867: “VC多线程模型::Form1::one”: 函数调用缺少参数列表;请使用“&VC多线程模型::Form1::one”创建指向成员的指针 e:\软件\软件模型\vc多线程模型\vc多线程模型\Form1.h 167 1 VC多线程模型
我知道系统时要我加上一个&符号,但我确实不知道这个&应当加载在哪里。
我尝试过使用下面的方法解决这个问题:
CreateThread( NULL,0,&one,NULL.NULL,NULL); //在one前面加上&
CreateThread( NULL,0,one,pData, 0,&dwThreadId);//创建两个int型变量,并在后一个int型变量前加上&
但这些努力最终都以失败告终。
我还看到有高手提到可以用static语句或是template语句来解决这个问题,但小弟我水平确实不高。。。真心不知道怎么用这两个语句。。。
求高手赐教。。。帮小弟解决这个问题。。。小弟我不胜感激。。。
哦,对了。。。如果您希望追加悬赏分的话,记得告我一声哈。。。 展开
//这个程序的主要代码如下,其余的代码都是VS2010自动生成的//
//这个程序的界面只有一个名为button1的按钮和两个label//
void one(int i)
{ //这个函数将作为一个单独的线程运行
char ou[4];//不知什么原因,我无法使用ou[4]={‘0','1','2','3'}来初始化数组
ou[0]='0';//所以我用了这样的方式来初始化数组 不过这不是重点啦
ou[1]='0';
ou[2]='1';
ou[3]='\0';
String^ out;//一个用于输出的中间变量
out=System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)ou);
label1->Text=out;//让label1输出 “001”
ou[1]='1';//改变一个变量,准备下一次输出
out=System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)ou);
label2->Text=out;//让label2输出 011
Sleep(3000);//休眠3秒,准备下一次输出
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
HANDLE A= CreateThread( NULL,0,one,NULL.NULL,NULL);//本行错误 error C3867
}
//*****主要代码完毕*****//
系统提示错误为:
error C3867: “VC多线程模型::Form1::one”: 函数调用缺少参数列表;请使用“&VC多线程模型::Form1::one”创建指向成员的指针 e:\软件\软件模型\vc多线程模型\vc多线程模型\Form1.h 167 1 VC多线程模型
我知道系统时要我加上一个&符号,但我确实不知道这个&应当加载在哪里。
我尝试过使用下面的方法解决这个问题:
CreateThread( NULL,0,&one,NULL.NULL,NULL); //在one前面加上&
CreateThread( NULL,0,one,pData, 0,&dwThreadId);//创建两个int型变量,并在后一个int型变量前加上&
但这些努力最终都以失败告终。
我还看到有高手提到可以用static语句或是template语句来解决这个问题,但小弟我水平确实不高。。。真心不知道怎么用这两个语句。。。
求高手赐教。。。帮小弟解决这个问题。。。小弟我不胜感激。。。
哦,对了。。。如果您希望追加悬赏分的话,记得告我一声哈。。。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询