Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用WinCE 5.0 RTOS在ATL应用程序中加载第三方.dll(COM dll)?_Com_Windows Ce_Atl - Fatal编程技术网

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

如何使用WinCE 5.0 RTOS在ATL应用程序中加载第三方.dll(COM dll)?,com,windows-ce,atl,Com,Windows Ce,Atl,我得到了答案,需要理解以下内容: 我有一个WinCe 5.0 ATL应用程序。此应用程序使用第三方COM dll和第三方应用程序(.exe)。根据我对WinCE和dll加载的理解,如下所示: 绞盘: 所有导出的dll函数都应该写在“.Def”文件中,运行时映像过程中需要包含的dll应该在“.bib”文件中。应该调用DLLExport或loadlibrary(我不想深入讨论如何使用这些函数)来加载dll 但在我的例子中:没有与第三方dll相关的.def文件,.bib文件在那里,但是.dll的路径在

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

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

绞盘:

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

但在我的例子中:没有与第三方dll相关的.def文件,.bib文件在那里,但是.dll的路径在文件中有注释(我的代码正在成功构建,我能够生成运行时映像)

除此之外,我还得到了另外一个文件:.cfg(我认为是配置文件),其中写的是“SERVICE name.dll(例如,这是第三方dll名称)”。我可以使用“dll导出查看器(免费工具)”查看导出的函数,但找不到(调用)从应用程序导出的函数

我可以写入.cfg文件并包含应用程序将使用的dll吗?有谁能帮我理解这些吗

先谢谢你



我不能百分之百肯定我理解这个问题,所以我将解释一下我认为你在问什么:

  • 您有一个ATL应用程序和一个COM库,它使用的是为Windows CE构建的
  • 这些项目是由第三方提供的,因此您没有源代码
  • 您希望将这些项直接集成到CE OS构建中
如果我的理解是正确的,那么答案是:

是的,你能做到。您需要做的是:

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

  • 使用远程注册表编辑器导出未安装COM库的设备的整个注册表
  • 将COM对象放到该设备上
  • 调用COM对象上的DllRegisterServer入口点(regsvrce或其他)
  • 使用远程注册表编辑器再次导出设备的整个注册表
  • 区分两个reg文件。新条目是您需要放在REG文件中的条目

  • 我不能百分之百肯定我理解这个问题,所以我将解释一下我认为你在问什么:

    • 您有一个ATL应用程序和一个COM库,它使用的是为Windows CE构建的
    • 这些项目是由第三方提供的,因此您没有源代码
    • 您希望将这些项直接集成到CE OS构建中
    如果我的理解是正确的,那么答案是:

    是的,你能做到。您需要做的是:

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

  • 使用远程注册表编辑器导出未安装COM库的设备的整个注册表
  • 将COM对象放到该设备上
  • 调用COM对象上的DllRegisterServer入口点(regsvrce或其他)
  • 使用远程注册表编辑器再次导出设备的整个注册表
  • 区分两个reg文件。新条目是您需要放在REG文件中的条目