是否可以针对特定目录中的特定二进制文件运行程序,而不是系统上当前安装的程序?我也无法修改应用程序的源代码。
答案 0 :(得分:1)
最简单的方法是使用LoadLibrary调用动态加载DLL。这样,您可以指定要使用的DLL副本的完整路径。
答案 1 :(得分:1)
最接近的是将更新的DLL放在与.exe。
相同的目录中以下是程序如何找到加载DLL的优先级列表(不包括众所周知的DLL)。
当前进程的可执行模块所在的目录。
当前目录。
Windows系统目录。 GetSystemDirectory函数检索此目录的路径。
Windows目录。 GetWindowsDirectory函数检索此目录的路径。
PATH环境变量中列出的目录。
如果您需要指定任意目录,那么第2项就是您的朋友。您可以cd / into目标目录,然后使用完整路径从该位置运行.exe。或者,您可以创建一个Windows快捷方式并指定“开始于:”值以设置应用程序的当前目录。如果有问题的.exe更改其工作目录,这将无法正常工作。
更新:虽然现在很明显这个建议已经过时,但它也是唯一一个涉及使用“特定目录中的特定二进制文件”的建议,我读到这意味着可能没有任意目录是.exe安装它的目录。 此外,现在我看到它被标记为“C#”,由于.manifest的可用性,我的答案确实让我的答案特别蹩脚,我想?
答案 2 :(得分:0)
如果它是本机DLL,那么您只需将DLL放在与可执行文件相同的文件夹中。 DLL search首先查看该文件夹。