如何使用WinCE 5.0 RTOS在ATL应用程序中加载第三方.dll(COM DLL)?

时间:2011-04-12 14:04:31

标签: com windows-ce atl

我得到了答案,需要了解以下内容:

我有一个WinCe 5.0 ATL应用程序。此应用程序使用第三方COM DLL和第三方应用程序(.exe)。根据我对WinCE和Dll加载的理解如下:

WinCE的:

所有dll导出的函数都应该写在“.Def”文件中,并且在运行时图像处理过程中需要包含的dll应该在“.bib”文件中。并且应该调用DLLExport或loadlibrary(我不想要深入了解如何使用这些),加载DLL。

但在我的情况下:没有与第三方dll和.bib文件相关的.def文件,但是,.dll的路径在文件中被注释(我的代码构建成功,我是能够制作运行时图像)。

除此之外还有一个额外的文件:即.cfg(我认为配置文件),并且它写成“SERVICE name.dll(例如,这是第三方dll名称)”。我能够通过使用“Dll Export Viewer(免费工具)”查看导出的函数,但无法从应用程序中找到(调用)导出函数的使用。

我可以编写.cfg文件并包含应用程序将使用的dll吗?任何人都可以帮助我理解所有这些吗?

提前致谢...


1 个答案:

答案 0 :(得分:1)

我不是100%肯定我理解这个问题,所以我会解释我认为你在问的问题:

  • 您有一个ATL应用程序和一个用于Windows CE的COM库。
  • 这些项目由第三方提供,因此您没有源代码
  • 您希望将这些项目直接集成到CE OS构建

如果我的理解是正确的,那么答案是:

是的,你可以这样做。你需要做的是:

  1. 将二进制文件(EXE和DLL)添加到操作系统映像。这是通过将它们添加到您的BIB文件(PLATFORM.BIB或PROJECT.BIB)来完成的。它们可以位于MODULES或FILES部分。
  2. 通过将条目添加到REG文件(PLATFORM.REG或PROJECT.REG)中,将COM对象的必需注册表项添加到平台。
  3. 如果您没有#2的条目,请执行以下操作:

    1. 使用远程注册表编辑器导出设备的整个注册表,而不安装您的COM库
    2. 将COM对象放到该设备上
    3. 调用COM对象上的DllRegisterServer入口点(regsvrce或但是)
    4. 使用远程注册表编辑器再次导出设备的整个注册表
    5. 区分两个reg文件。新条目是您需要放入REG文件的条目