VC++一个文件中有三个窗口,三个窗口都需要串口操作,该怎么设置?

时间:2021-08-14 19:56:54
小弟请教各位大侠:一个文件包含三个窗口,每个窗口都有一些按钮控制外部设备,因此需要串口操作。我在每个窗口中都加载了串口组件Microsoft communication v6.0,可编译时候出错,说是    error C2011: 'CMSComm' : 'class' type redefinition,也就是重定义了。我想问问大家我这种情况应该怎么办?应该如何设置?
是不是在主窗口加载一个串口控件就行了,其它的窗口对它调用?谢谢各位!

9 个解决方案

#1


主对话框 或者mainfrm里加入串口类就可以了 多个串口操作也是用Cmscomm实例化多个串口 和你三个控件没关系

#2


引用 楼主 HalfPassage_Liu 的回复:
小弟请教各位大侠:一个文件包含三个窗口,每个窗口都有一些按钮控制外部设备,因此需要串口操作。我在每个窗口中都加载了串口组件Microsoft communication v6.0,可编译时候出错,说是    error C2011: 'CMSComm' : 'class' type redefinition,也就是重定义了。我想问问大家我这种情况应该怎么办?应该如何设置?
是不是在主窗口加载一个串口控件就行了,其它的窗口对它调用?谢谢各位!

你是多串口还是单串口?

#3


只有一个串口,3个对话框都需要从这个串口进行数据传递!

引用 2 楼 wxhxj0268 的回复:
Quote: 引用 楼主 HalfPassage_Liu 的回复:

小弟请教各位大侠:一个文件包含三个窗口,每个窗口都有一些按钮控制外部设备,因此需要串口操作。我在每个窗口中都加载了串口组件Microsoft communication v6.0,可编译时候出错,说是    error C2011: 'CMSComm' : 'class' type redefinition,也就是重定义了。我想问问大家我这种情况应该怎么办?应该如何设置?
是不是在主窗口加载一个串口控件就行了,其它的窗口对它调用?谢谢各位!

你是多串口还是单串口?

#4


串口代码 放  app 文件中。
使用时 
CWinApp* YourApp=AfxGetApp( ); 
YourApp->串口。。。。

#5


app中每个物理串口设置一个对应的变量,通过app对象操作串口
每个独立的物理串口相对于CPU运行是蜗牛对火箭的关系,并且串口不能并行,需要排队的,三个窗口是不能同时使用

#6


这种问题应该不是几个串口的问题,编译出了问题,可以能是你多处定义类的行为造成的,你要弄清除CMSComm' : 'class'是否有重定义现象....

#7


引用 6 楼 zj415590041 的回复:
这种问题应该不是几个串口的问题,编译出了问题,可以能是你多处定义类的行为造成的,你要弄清除CMSComm' : 'class'是否有重定义现象....

您说的问题确实切中要害,我的确是定义了两个mscomm类,可我去掉了一个,还是报错。

#8


区分 类与 类的实例 的 关系

#9


你只有一个串口,当多个设备需要与此串连接时,如果硬件上没有问题,应该将串口通信做成模块独立出来,这样,应用就不需要管理串口,而只需要要向通信模块传送数据。

#1


主对话框 或者mainfrm里加入串口类就可以了 多个串口操作也是用Cmscomm实例化多个串口 和你三个控件没关系

#2


引用 楼主 HalfPassage_Liu 的回复:
小弟请教各位大侠:一个文件包含三个窗口,每个窗口都有一些按钮控制外部设备,因此需要串口操作。我在每个窗口中都加载了串口组件Microsoft communication v6.0,可编译时候出错,说是    error C2011: 'CMSComm' : 'class' type redefinition,也就是重定义了。我想问问大家我这种情况应该怎么办?应该如何设置?
是不是在主窗口加载一个串口控件就行了,其它的窗口对它调用?谢谢各位!

你是多串口还是单串口?

#3


只有一个串口,3个对话框都需要从这个串口进行数据传递!

引用 2 楼 wxhxj0268 的回复:
Quote: 引用 楼主 HalfPassage_Liu 的回复:

小弟请教各位大侠:一个文件包含三个窗口,每个窗口都有一些按钮控制外部设备,因此需要串口操作。我在每个窗口中都加载了串口组件Microsoft communication v6.0,可编译时候出错,说是    error C2011: 'CMSComm' : 'class' type redefinition,也就是重定义了。我想问问大家我这种情况应该怎么办?应该如何设置?
是不是在主窗口加载一个串口控件就行了,其它的窗口对它调用?谢谢各位!

你是多串口还是单串口?

#4


串口代码 放  app 文件中。
使用时 
CWinApp* YourApp=AfxGetApp( ); 
YourApp->串口。。。。

#5


app中每个物理串口设置一个对应的变量,通过app对象操作串口
每个独立的物理串口相对于CPU运行是蜗牛对火箭的关系,并且串口不能并行,需要排队的,三个窗口是不能同时使用

#6


这种问题应该不是几个串口的问题,编译出了问题,可以能是你多处定义类的行为造成的,你要弄清除CMSComm' : 'class'是否有重定义现象....

#7


引用 6 楼 zj415590041 的回复:
这种问题应该不是几个串口的问题,编译出了问题,可以能是你多处定义类的行为造成的,你要弄清除CMSComm' : 'class'是否有重定义现象....

您说的问题确实切中要害,我的确是定义了两个mscomm类,可我去掉了一个,还是报错。

#8


区分 类与 类的实例 的 关系

#9


你只有一个串口,当多个设备需要与此串连接时,如果硬件上没有问题,应该将串口通信做成模块独立出来,这样,应用就不需要管理串口,而只需要要向通信模块传送数据。