相关疑难解决方法(0)

加载时动态链接和运行时动态链接之间的区别

将程序加载到内存中时,加载时动态链接和运行时动态链接有什么区别?

dll linker operating-system loader toolchain

24
推荐指数
3
解决办法
2万
查看次数

如何将Win32 App插件加载到自己的目录中

我的代码是特定应用程序的插件,使用Visual Studio 8用C++编写.它使用来自外部提供程序的两个DLL.不幸的是,我的插件无法启动,因为找不到DLL(我把它们放在与插件本身相同的目录中).

当我手动将DLL移动或复制到主机应用程序目录时,插件加载正常.对于最终用户来说,这种移动被认为是不可接受的麻烦,我正在寻找一种方法让我的插件透明地加载它的DLL.我能做什么?

相关细节:

  • 主机应用程序插件位于主机应用程序强制要求的目录中.该目录不在DLL搜索路径中,我不控制它.
  • 插件本身打包为插件目录的子目录,包含插件代码本身,以及与插件相关的任何资源(例如图像,配置文件......).我控制该子目录中的内容,称为"捆绑",但不是它所在的位置.
  • 该应用程序的常见插件安装习惯用于最终用户将插件包复制到插件目录.

这个插件是该插件的Macintosh版本的端口.在Mac上没有问题,因为每个二进制文件都包含自己的动态库搜索路径,我设置为我需要的插件二进制文件.要在Mac上设置它只需要在Xcode IDE中进行项目设置.这就是为什么我希望在Visual Studio中有类似的东西,但我找不到任何相关的东西.此外,Visual Studio的帮助不过是,谷歌也没有.

一个可能的解决方法是我的代码明确地告诉Windows在哪里找到DLL,但我不知道如何,并且无论如何,因为我的代码甚至没有启动,所以它没有机会这样做.

作为一名Mac开发人员,我意识到我可能会要求一些非常基础的东西.如果是这样的话,我道歉,但我已经没有头发了.

dll winapi plugins search-path

4
推荐指数
1
解决办法
2143
查看次数