运行具有一组特定DLL的程序?

时间:2012-10-04 18:04:23

标签: c# windows dll

是否可以针对特定目录中的特定二进制文件运行程序,而不是系统上当前安装的程序?我也无法修改应用程序的源代码。

3 个答案:

答案 0 :(得分:1)

最简单的方法是使用LoadLibrary调用动态加载DLL。这样,您可以指定要使用的DLL副本的完整路径。

答案 1 :(得分:1)

最接近的是将更新的DLL放在与.exe。

相同的目录中

以下是程序如何找到加载DLL的优先级列表(不包括众所周知的DLL)。

  1. 当前进程的可执行模块所在的目录。

  2. 当前目录。

  3. Windows系统目录。 GetSystemDirectory函数检索此目录的路径。

  4. Windows目录。 GetWindowsDirectory函数检索此目录的路径。

  5. PATH环境变量中列出的目录。

  6. 如果您需要指定任意目录,那么第2项就是您的朋友。您可以cd / into目标目录,然后使用完整路径从该位置运行.exe。或者,您可以创建一个Windows快捷方式并指定“开始于:”值以设置应用程序的当前目录。如果有问题的.exe更改其工作目录,这将无法正常工作。

    更新:虽然现在很明显这个建议已经过时,但它也是唯一一个涉及使用“特定目录中的特定二进制文件”的建议,我读到这意味着可能没有任意目录是.exe安装它的目录。 此外,现在我看到它被标记为“C#”,由于.manifest的可用性,我的答案确实让我的答案特别蹩脚,我想?

答案 2 :(得分:0)

如果它是本机DLL,那么您只需将DLL放在与可执行文件相同的文件夹中。 DLL search首先查看该文件夹。