问题描述
做一个与三菱PLC进行串口通信的程序,里面要用到串口打开的程序,想用多线程进行打开,打开用的代码如下:InvokeHelper(0x1,DISPATCH_METHOD,VT_I4,(void*)&result,NULL);当然,在打开之前已经设置好波特率串口号等参数了。结果运行后只要一用多线程打开串口就提示“RunTimeError”,"abnormalprogramtermination"。创建多线程用的是:AfxBeginThread(串口打开程序,(LPVOID)参数指针,0,0,0,NULL);这是为什么啊?我看了别人用mscomm做的,他们那个打开串口的好像是用主线程完成的,只是后面的串口监听等操作用的是多线程完成的。难道,打开串口的时候是不能用多线程打开的?
解决方案
解决方案二:
这...要看一下代码了
解决方案三:
找到原因了,用多线程打开串口的话,在初始化线程的时候要用CoInitialize(NULL);
时间: 2024-10-31 00:41:14