当前位置: 代码迷 >> PB >> 关于MSComm控件注册有关问题
  详细解决方案

关于MSComm控件注册有关问题

热度:175   发布时间:2016-04-29 05:29:09.0
求助:关于MSComm控件注册问题
PB调用MSCOMM控件运行不成功
程序代码如下:
//注册MSCOMM32.OCX控件
string ls_temp
integer li_ret
long ll_ret
/////注册控件


li_ret = RegistryGet("HKEY_CLASSES_ROOT\CLSID\{kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun}\TypeLib", "", RegString!, ls_temp)//{kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun}是这个控件的CLSID
if li_ret = -1 then //如果返回-1,说明没有注册
 ll_ret = DllRegisterServer()
end if

fclose()
uInit()


//CommPort //打开串口 一
ole_1.object.CommPort = 1
//设置速率为9600,无奇偶校验,8 位数据,一个停止位。 
ole_1.object.Settings = "1200,N,8,1"
//读入整个缓冲区的数据。 
ole_1.object.InputLen = 0
//打开端口 
ole_1.object.PortOpen = True
//开始读数
timer(0.5)
运行提示如下错误:


也按网上查到的方法(下链接)手工注册MSComm控件,显示注册成功,可是还是会出现上述错误,ole控件会显示成一个白色小窗口,希望哪位高手帮忙指点一下,不胜感激!
http://www.cnblogs.com/yrh2847189/archive/2007/06/19/789213.html

------解决方案--------------------
引用:
PB调用MSCOMM控件运行不成功
程序代码如下:
//注册MSCOMM32.OCX控件
string ls_temp
integer li_ret
long ll_ret
/////注册控件


li_ret = RegistryGet("HKEY_CLASSES_ROOT\CLSID\{kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun}\TypeLib", "", RegString!, ls_temp)//{kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun}是这个控件的CLSID
if li_ret = -1 then //如果返回-1,说明没有注册
 ll_ret = DllRegisterServer()
end if

fclose()
uInit()


//CommPort //打开串口 一
ole_1.object.CommPort = 1
//设置速率为9600,无奇偶校验,8 位数据,一个停止位。 
ole_1.object.Settings = "1200,N,8,1"
//读入整个缓冲区的数据。 
ole_1.object.InputLen = 0
//打开端口 
ole_1.object.PortOpen = True
//开始读数
timer(0.5)
运行提示如下错误:


也按网上查到的方法(下链接)手工注册MSComm控件,显示注册成功,可是还是会出现上述错误,ole控件会显示成一个白色小窗口,希望哪位高手帮忙指点一下,不胜感激!
http://www.cnblogs.com/yrh2847189/archive/2007/06/19/789213.html


如果ole控件显示成一个白色的小窗口,就是出问题了,你可以把这个ole删除掉,重新添加一下,就好了
------解决方案--------------------
建议把注册控件的代码写成一个单独的程序,不要把注册和读写放在一起,如果注册的代码出问题,那么即使你手工注册成功了,那么读写也不会正确吧?
------解决方案--------------------
我遇到过Win 7 64位系统注册控件的时候要注册到SysWoW64文件夹下而不是System32下的情况。不知道对你有没帮助。
------解决方案--------------------
试试这个http://download.csdn.net/detail/pcwe2002/5364269