在Windows CE 6.0上缺少.ocx的依赖项

时间:2014-02-12 14:13:55

标签: activex windows-ce ocx

我正在尝试为Windows CE 6.0设备上的应用程序创建ActiveX控件,但我无法让它在设备上注册。当我将.ocx文件传输到设备并尝试使用regsvrce.exe注册它时,它失败并显示错误7e,我知道这意味着缺少依赖项。如何识别缺少哪个依赖项?或者,我是否已经错误地创建了ActiveX控件?

我已经在我的开发机器上运行了Dependency Walker中的.ocx(运行Windows 7 64位,如果这很重要),并且它列出的所有顶级依赖项都存在于CE设​​备上。因为Depends会在我的开发机器上查找顶级依赖项,因此我无法在树中进一步查看,其中一半因为它们是CE特定的而缺失。 Dependency Walker不能在CE设备上运行(除非我错过了CE版本?)。我试图将DLL从CE设备复制到闪存驱动器,因此我可以将它们加载到我的开发机器上的DW中,但设备不允许我这样做。不幸的是,我用于传输文件的OEM工具只将传输到设备。 [编辑:我没有尝试编写自己的工具来尝试将文件从设备拉到开发机器。]

关于我如何设置项目的一些细节,以防我在这方面有一些错误的假设。我试过两个项目。一个人有我的代码(ActiveX控件本身只是一些数据的图形表示,我最初在win32 ActiveX控件中设置它以查看它的外观),一个是一个干净的项目 - 从模板创建,编译,下载到设备;没有添加代码或配置已更改。尝试注册时,两者都有相同的结果。

  • 使用VS2005,使用“MFC智能设备ActiveX控件”模板创建项目,目标是从OEM收到的SDK。
  • 如果项目中包含我的代码,我将绘图代码复制到项目中,并为数据输入创建必要的属性。如果它有用,我可以提供有关我的代码的更多详细信息,但即使没有代码,我的问题也会发生。我假设,因为它从OEM定位SDK时成功编译,我正在使用的功能应该在目标设备上可用。
  • 在发布配置中构建项目(我想知道目标设备上是否缺少调试库并导致问题)。
  • 使用OEM工具将.ocx文件传输到目标设备。
  • 在目标设备上启动命令行,移动到.ocx所在的目录,运行“regsvrce.exe .ocx”。我也试过传输VS在构建输出文件夹中留下的所有文件,但结果是一样的。

非常感谢您的任何答案!如果你看到一些明显的东西指出来 - 这是我的第一个ActiveX项目和我的第一个CE项目,所以我很可能错过了一些基本的东西。

1 个答案:

答案 0 :(得分:0)

自您构建OCX后,我假设您使用的是MFC。你如何与MFC联系?查看项目设置|常规,尝试选择“在静态库中使用MFC”。同样适用于ATL - 尝试选择“静态链接到ATL”(如果使用ATL)。这也适用于VCRT - 在C / C ++ |代码生成中,在“运行时库”中尝试选择没有“DLL”的选项(即 - 静态链接到VCRT)。 由于默认的空OCX不适合你 - 这是我唯一能想到的...... 另一件事 - 我认为你有理由与Visaul Studio 2005合作?为什么不是更新的版本? 祝你好运,PazO