问题现象:
一个.net2.0编写的程序,在win7运行正常,xp下运行时没有任何反应。但xp的framework2.0环境没有问题。
把Mscomm通过regsvr32注册、添加注册表,故障依旧。不断精简程序调试,发现程序在实例化MsComm时就没反应了。
解决方案:
经测试,Xp下使用AxMSCommLib.AxMSComm正常,把MsComm换成AxMSCommLib.AxMSComm后,程序正常。
需要注意的是:
1.代码生成的控件要加到界面上
((System.ComponentModel.ISupportInitialize)(com.Comm)).BeginInit();
this.Controls.Add(com.Comm);
((System.ComponentModel.ISupportInitialize)(com.Comm)).EndInit();
2.修改事件:
//com.OnComm += new MSCommLib.DMSCommEvents_OnCommEventHandler(this.OnComm1);
com.OnComm += new EventHandler(this.OnComm1);
PS:
最后还是有无法解决的问题,换成了SerialPort,兼容性更好些。