重新表述问题
我有一台 XP 机器,我想从命令提示符中的任何位置访问 *.bat 文件。例如,假设它来自vcvarsall.bat
我的 Visual Studio 2010 目录。
通常,可以通过在我的用户环境变量“Path”中添加此 *.bat 文件的目录路径来完成此操作:
C:\Program Files\Microsoft Visual Studio 10.0\VC
完成后,vcvarsall
无论当前目录路径如何,我现在都可以在命令提示符中输入内容。
但是,这在我的一台 XP 机器上不起作用。我试过了echo %path
,它在那里,但是计算机无法找到vcvarsall
。
我尝试查找原因,但未能找到。任何有关此问题的见解都将不胜感激。
老问题-请忽略
This question is not so much about which exe or dll file I'm trying to make use of, but rather the unusual behaviour on one of my XP machines. To prevent confusion, I have rephrased the question as above, but left the old question just for archival purpose. I thank you for the time you take to help me with this.
我添加了 DLL 文件位置的路径(帧流文件) 添加到 Windows XP 计算机上的系统变量,但是当我运行加载所述 DLL 文件的应用程序时,出现一条错误消息,告诉我未找到该文件。
这是我的系统变量路径的条目:
%SystemRoot%\system32; %SystemRoot%; %SystemRoot%\System32\Wbem; %NUANCE_VERSION%\bin; C:\Program Files\Microsoft SQL Server\100\Tools\Binn; C:\Program Files\Microsoft SQL Server\100\DTS\Binn; C:\WINDOWS\system32\WindowsPowerShell\v1.0; C:\Program Files\Skype\Phone; C:\Python34\Scripts; C:\Python34; C:\Dev\ffmpeg-20160219-git-98a0053-win32-shared\bin; C:\Dev\SDL2-2.0.4\lib\x86; C:\Ang_delwhenhesgone\WebcamStreamClient\Debug; C:\Ang_delwhenhesgone\ffmpeg_scripts; C:\Dev\opencv_old\build\x86\vc10\bin;
DLL 文件的路径位于C:\Ang_delwhenhesgone\WebcamStreamClient\Debug;
。
当我在命令提示符中输入“echo %Path%”时,我得到:
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\PROGRA~1\COMMON~1\
NUANCE~1\bin;C:\Program Files\Microsoft SQL Server\100\Tools\Binn;C:\Program
Files\Microsoft SQL Server\100\DTS\Binn;C:\WINDOWS\system32\WindowsPowerShell\v1
.0;C:\Program Files\Skype\Phone;C:\Python34\Scripts;C:\Python34;C:\Dev\ffmpe
g-20160219-git-98a0053-win32-shared\bin;C:\Dev\SDL2-2.0.4\lib\x86;C:\Ang_delwh
enhesgone\WebcamStreamClient\Debug;C:\Ang_delwhenhesgone\ffmpeg_scripts; C:\Dev
\opencv_old\build\x86\vc10\bin;
这似乎是正确的。
我应该补充一点,我能够在另外两台机器(XP 和 Win10)上设置相同的路径条目,没有任何问题。这让我怀疑这里出了问题。可能是日语区域设置导致了这个问题?我只能猜测。
如果您能帮助我将非常感谢。
答案1
DLL 永远不会从路径加载,而是从各种地方加载。如果您希望能够从任何地方运行 exe,有几种可能的解决方案
- 使用快捷方式指向 exe 而不是真正的 exe,然后 exe 仍然可以接近它的依赖项。
- 更改创建 exe 的程序以在特定位置查找 DLL。
- 将 DLL 添加到 GAC 或 Windows 会自动找到的其他位置。以下是Windows 搜索位置。
答案2
这很尴尬……但我找到了这个问题的答案。问题的原因在于白色间距。
而不是这样:
C:\Program Files\Skype\Phone; C:\Python34\Scripts; C:\Python34; C:\Program Files\Microsoft Visual Studio 10.0\VC
它应该是这样的:
C:\Program Files\Skype\Phone;C:\Python34\Scripts;C:\Python34;C:\Program Files\Microsoft Visual Studio 10.0\VC