vs创建的窗体应用程序怎么创建线程

HANDLEhthread;DWORDWINAPItest(LPVOIDpnull){//线程要处理的事情}[STAThreadAttribute]intmain(arr... HANDLE hthread;
DWORD WINAPI test(LPVOID pnull)
{
//线程要处理的事情
}

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
hthread = CreateThread(NULL, NULL, test, NULL, NULL, NULL);
// 在创建任何控件之前启用 Windows XP 可视化效果
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// 创建主窗口并运行它
Application::Run(gcnew Form1());

return 0;
}

运行之后会报错
错误 4 error C3641: “test”: 用 /clr:pure 或 /clr:safe 编译的函数的调用约定“__stdcall ”无效
错误 5 error C2664: “CreateThread”: 不能将参数 3 从“DWORD (__stdcall *)(LPVOID)”转换为“LPTHREAD_START_ROUTINE”

我看过MSDN说clr要跟__clrcall一起调用才行,改过编译能过,执行貌似也不能用
本人菜鸟,求高手指点~
展开
 我来答
空雪梦见
2013-11-30 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1203万
展开全部

虽然更好的办法是用System::Threading::Thread,

但是实在要用API的话,


别选pure或者safe啊……

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式