在下现在在WinCE下编程,我想将一个我在Windows9x/2000下经常使用的一个控件在WinCE下调用,不知可否行得通。
    我是用VC编程,我在EVC4(WinCE的C++工具)中,按照在Windows下的调用控件的方法试了一下,发现编译通过,没有错误,但程序不能正常执行,生成对话框时失败,这时它在Debug中提示我一条信息,内容如下:CoCreateInstance of OLE control {0944D16C-D0F4-4389-982A-A085595A9EB3} failed.
>>> Result code: 0x80040154
>>> Is the control is properly registered?
coredll.dll
ole32.dll
oleaut32.dll
Warning: CreateDlgControls failed during dialog init.
The thread 0x63AB1FC2 has exited with code 0 (0x0).
The program 'D:\My C++\WinCE\Skin\X86Dbg\Skin.exe' has exited with code 0 (0x0).    请问这是不是我没有注册这个控件的意思?
    请问我的想法可以实现吗?因为Windows9x/2000下的.exe文件是不能在WinCE下执行的,所以我想问Windows9x/2000下的.ocx控件可以在WinCE下调用吗?
    不管可不可以调用,我想请问如果发生上面这种情况,我应该怎么做(怎么注册控件)呢?
    小弟知道的不多,请各位说的详细些,最好能提供例子,不胜感激!
    答者有分。

解决方案 »

  1.   

    OCX控件是由system32目录下的regsvr32来注册的,你可以试试。
      

  2.   

    Windows下的控件不能在WINCE下用,要用WINCE的专用控件或要使用需有源码重编译一个一般WINCE的控件都有两个版本,Windows的仿真版本和WINCE的运行版本,两个根据情况来注册!
      

  3.   

    注册控件:
    在命令行窗口中输入
    regsvr32 SomeControl.ocx
    将SomeControl.ocx换为你要注册的控件的文件名即可
      

  4.   

    可能是没有进行COM库的初始化,请在CXXXApp::InitInstance函数中调用AfxOleInit()函数试试。