我可以使一个dll依赖于不同目录中的另一个dll吗?

我可以使一个dll依赖于不同目录中的另一个dll吗?,dll,shared-libraries,Dll,Shared Libraries,我的程序依赖于Microsoft重新分发包,或者更具体地说,依赖于MSVCR100.dll 推荐的方法是在程序运行之前安装重新分发包。但是,我的程序非常小(大约1MB),vcredit.exe大约5MB,对我的安装程序来说有点太大了 因此,这里有另一种方法,根据Microsoft的许可证,我们可以将dll安装到我的应用程序文件夹中的子文件夹(\VC\redist\x86\Microsoft.VC100.CRT\)中。因此,我的应用程序目录如下所示: MyAppFolder\a.exe MyApp

我的程序依赖于Microsoft重新分发包,或者更具体地说,依赖于MSVCR100.dll

推荐的方法是在程序运行之前安装重新分发包。但是,我的程序非常小(大约1MB),vcredit.exe大约5MB,对我的安装程序来说有点太大了

因此,这里有另一种方法,根据Microsoft的许可证,我们可以将dll安装到我的应用程序文件夹中的子文件夹(
\VC\redist\x86\Microsoft.VC100.CRT\
)中。因此,我的应用程序目录如下所示:

MyAppFolder\a.exe
MyAppFolder\lib\a.dll
MyAppFolder\VC\redist\x86\Microsoft.VC100.CRT\MSVCR100.dll

>我的问题是,如何使A.DLL找到位于另一个文件夹中的MSVCR100.DLL?

< p>您可以考虑将CRT链接为静态库,对MSVCRXX.DLL,

没有依赖性。 但是你的EXE/DLL会更大

此解决方案适用于包含一个EXE/DLL的项目,但对于较大的项目,您可以创建包含MSVCRT合并模块的MSI包。

刚刚找到一个函数-可以解决我的问题

是的,我可以将CRT链接为静态库,但在我的例子中,有几个库依赖于它,这意味着每个dll都有一个MSVCR100.dll的副本