利用vs2005开发环境建立了一个基于对话框的mfc智能设备应用程序,添加了mscomm控件接受并显示数据,smdk2440开发平台。
程序编译没有问题,但是在arm开发板上在线调试是出现如下问题:(以下为调试信息)  
加载模块: 11.exe
加载模块: commctrl.dll
加载模块: oleaut32.dll
加载模块: ole32.dll
加载模块: coredll.dll
加载模块: aygshell.dll
Platform Type : PLATFORM_TYPE
CoCreateInstance of OLE control {648A5600-2C6E-101B-82B6-000000000014} failed.
>>> Result code: 0x80040154
>>> Is the control is properly registered?
Warning: Resource items and Win32 Z-order lists are out of sync. Tab order may be not defined well.
程序“[e3400d5a] 11.exe”已退出,返回值为 1067 (0x42b)。不知道是什么问题,请过来人指点一二,小弟在此多谢了!!!!1

解决方案 »

  1.   

    本来就是要注册的。我记得有有文章特地介绍的手动注册的方法:
    第一步:将Mscomm.srg, Mscomm32.ocx,Mscomm32.dep三个文件复制到系统文件夹中。要注意的是,MSComm控件是要授权的,所以必须将其使用“执照”Licence 在注册表中登记注册,下一步就是注册方法。至于为什么要这样做,可以看看下面的网页: http://support.microsoft.com/support/kb/articles/q151/7/71.asp 
      第二步:用Windows下的注册工具regsvr32注册该OCX控件,点击“开始”->"运行",再在中填入(假设操作安装在C盘,WIN2000): 
    Regsvr32 C:\winnt\system32\Mscomm32.ocx 
     第三步:在注册表中手工新建一个主键项:先在点击“开始”->"运行",再在中填入regedit命令打开注册表,找到HKEY_CLASSES_ROOT\Licenses,在其中添加主键 
    4250E830-6AC2-11cf-8ADB-00AA00C00905 并将内容设置为: 
           kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun 
      

  2.   

    把MSCOMM32.OCX考到硬盘里某个目录里,一般放在操作系统的系统目录里,然后在命令提示符的窗口里(开始-程序-附件里点"命令提示符",实际上就是DOS窗口)执行:
    regsvr32 目录:\\mscomm32.ocx回车就行了,会出现注册成功或失败的提示
      

  3.   

    搞了半天还是没搞明白,最后用的cserialport串口类编写成功了,估计是mscomm是win32下的控件,在wince5.0下用不了吧!多谢各位了,小弟最近有点忙,所以帖子回复的有点晚,不好意思了。。