windows - 添加特定于应用程序的路径,因此它可以从 Windows 中的命令行运行

标签 windows dll dynamic

按照 Microsoft 的指南, http://msdn.microsoft.com/en-us/library/ee872121(VS.85).aspx ,我能够让我的程序能够让程序解析运行所需的动态库。

因此,我添加了一个包含我的可执行文件的全名和路径的值,并向该条目(命名路径)添加了包含 DLL 文件目录的完整路径的子项。

还有魔法。有用。我进入开始菜单,然后键入 myprogram.exe,它会启动,现在能够正确定位 dll 文件。

但是,如果我使用命令 cmd.exe 启动命令提示符,然后尝试运行 myprogram.exe,则无法再解析 DLL。出于某种原因,在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 下设置时,命令提示符似乎不尊重/读取注册表的值

关于如何在命令提示符和开始菜单中使此行为正常工作,有什么建议吗?

最佳答案

这是正确的。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App PathsShellExecuteEx 使用,而不是由 CreateProcess 使用。因此,并非所有程序都会使用您应用程序的 App Paths 中的设置。如果要为 cmd.exe 定义 PATH,您可以使用名称为 cmd.exe 的 App Paths 的子项或使用旧的 %SystemRoot%\System32\autoexec.nt 文件修改PATH 环境变量。

关于windows - 添加特定于应用程序的路径,因此它可以从 Windows 中的命令行运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114618/

相关文章:

windows - 包装可执行文件以诊断其调用

C++ - 如何使显式导入的 DLL 函数对其他类可用

python - 无法将 .dll 文件加载到 python 脚本中

c# - 将 native C++ 移植到 .NET

windows - 为什么 Windows 注册表存在?

mysql - MySQL 是否可以不作为服务运行

windows - 在 Windows 终端中的 git 帐户之间切换的简单方法?

javascript - JS表单-动态填充下拉列表-多选、表单填写

dynamic - Hyperledger私有(private)数据动态访问

scala - 什么是可堆叠修改?