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语句来解决这个问题,但小弟我水平确实不高。。。真心不知道怎么用这两个语句。。。

求高手赐教。。。帮小弟解决这个问题。。。小弟我不胜感激。。。
哦,对了。。。如果您希望追加悬赏分的话,记得告我一声哈。。。
展开
 我来答
龚炜林
2013-05-28 · TA获得超过1560个赞
知道大有可为答主
回答量:1102
采纳率:66%
帮助的人:578万
展开全部
应该能帮你解决,只是CreateThread参数线程函数问题。但是需要具体了解更多信息,才好更改。
你把q留下,我加你。或者百度Hi。
追问
留我扣扣号吧  824215244  谢谢啦
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式