C++ dll A在不同文件夹位置调用dll B函数

C++ dll A在不同文件夹位置调用dll B函数,c++,dll,C++,Dll,我有两个DLL,分别是A和B,它们都将部署到不同的文件夹位置 比如说, Dll A in C:\Users\PC\Desktop\Project Dll B in C:\Users\PC\Desktop\Project\B Folder dll A如何加载dll B而不是使用LoadLibrary方法 谢谢。您不使用LoadLibrary。您可以使用DLL B的头和.lib编译DLL A,并引用DLL B。然后让系统加载器解析依赖项。更糟糕的是,您使用manifest()来微调要在运行时加

我有两个DLL,分别是A和B,它们都将部署到不同的文件夹位置

比如说,

Dll A in C:\Users\PC\Desktop\Project


Dll B in C:\Users\PC\Desktop\Project\B Folder
dll A如何加载dll B而不是使用LoadLibrary方法


谢谢。

您不使用
LoadLibrary
。您可以使用DLL B的头和
.lib
编译DLL A,并引用DLL B。然后让系统加载器解析依赖项。更糟糕的是,您使用manifest()来微调要在运行时加载的DLL


LoadLibrray
仅当您需要执行运行时功能on-off开关时才应使用,当您仅当存在DLL且可能是某个版本时才需要显示某个行为时才应使用。一些许可证方案可能需要动态加载,但几乎总是可以更好地解决这些问题。操作系统依赖项(例如,在XP上以一种方式运行,在Win7上以另一种方式运行,以利用较新操作系统的功能)是可以接受的
LoadLibrary

您好,感谢您的回复。我刚刚做了一个示例,并尝试了您建议的解决方案。但是,它显示“需要找到与exe相同位置的dll”。当我尝试运行示例exe时,您可以从我的skydrive添加
B文件夹
下载项目到
路径
,或者最好部署清单并指定位置。有什么简单的解决办法吗?因为我已经测试,创建了几个项目Dll A,B和控制台。在dll A中包含了dll B中的一些方法,然后在控制台项目中添加dll A和库并运行。最后,它显示找不到dll B,因为它位于文件夹中,与dll Aat的位置不同。最后,我没有将B文件夹路径添加到系统路径,而是将dll添加到系统文件夹(32/64位)