-1

Перефразированный вопрос

У меня есть машина XP, на которой я хочу получить доступ к файлу * .bat из любой точки моей командной строки. В качестве примера предположим, что это vcvarsall.bat из моего каталога Visual Studio 2010.

Обычно это можно сделать, добавив путь к каталогу этого * .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-файла (FrameStream.dll) к моей системной переменной на компьютере с Windows XP, но когда я запускаю приложение, которое загружает указанный DLL-файл, появляется сообщение об ошибке, в котором говорится, что он не найден.

Это запись моей системной переменной Path:

% SystemRoot%\system32; % SystemRoot%; % SystemRoot%\System32\Wbem; % NUANCE_VERSION%\Bin; C:\Program Files\Microsoft SQL Server\100\Инструменты \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-ГИТ-98a0053-win32-Shared \бен; C:\Dev \SDL2-2.0.4 \Lib \x86; C:\Ang_delwhenhesgone \WebcamStreamClient \Debug; C:\Ang_delwhenhesgone \ffmpeg_scripts; C:\Dev \opencv_old \сборка \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\Инструменты \Binn; C:\Программа F
iles \Microsoft SQL Server\100\DTS \Binn; C:\WINDOWS\system32\WindowsPowerShell \v1
+0,0; C:\Program Files\Skype \Phone; C:\Python34 \Scripts; C:\Python34; C:\Dev \ffmpe
г-20160219-ГИТ-98a0053-win32-Shared \бен; C:\Dev \SDL2-2.0.4 \Lib \x86; C:\Ang_delwh
enhesgone \WebcamStreamClient \Debug; C:\Ang_delwhenhesgone \ffmpeg_scripts; C:\Dev
\Opencv_old \сборка \x86 \VC10\Bin;

что кажется правильным.

Я должен добавить, что мне удалось установить одну и ту же запись Path на двух других машинах (XP и Win10) без каких-либо проблем. Это привело меня к подозрению, что здесь что-то не так. Может ли это быть японский язык, который вызывает проблему? Я могу только удивляться.

Помощь была бы очень признательна.

2 ответа2

1

DLL никогда не загружаются с пути, они загружаются из разных мест. Если вы хотите иметь возможность запустить exe из любого места, есть несколько возможных решений

  • Используйте ярлык, чтобы указать на exe вместо реального exe, тогда exe все еще может быть близко к его зависимостям.
  • Измените программу, которая создала исполняемый файл, чтобы искать DLL в определенных местах.
  • Добавьте DLL в GAC или в другое место, в котором окна автоматически найдут ее. Вот список мест поиска Windows.
1

Это неловко ... но я нашел ответ на этот вопрос. Причиной проблемы является интервал белого.

Вместо этого:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .