Изменить путь загрузки DLL

Тема в разделе "Другие языки программирования", создана пользователем Alex1983, 4 янв 2015.

  1. Alex1983
    Оффлайн

    Alex1983 Разработчик

    Сообщения:
    848
    Симпатии:
    523
    Всем привет.
    У меня просьба, кто сможет написать два батника?
    1. Заносить в переменную окружения PATH значение от куда запущен бат файл.
    2. Удаляет это значение.

    Можно и на VBScript, JScript

    Заранее благодарен.
     
  2. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    Alex1983, вот тут готовые примеры
    просто заменишь C:\myfolder на %~dp0
     
    Alex1983 и Drongo нравится это.
  3. Alex1983
    Оффлайн

    Alex1983 Разработчик

    Сообщения:
    848
    Симпатии:
    523
    применил этот код
    Код (Text):
    For /f "tokens=2*" %a In ('Reg query "HKCU\Environment" /v Path') Do Set "userpath=%b"
    set newpath=%userpath%;C:\myfolder2
    setx path "%newpath%"
    но у меня нет значения C:\myfolder2
     
  4. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    Alex1983, читай выше внимательней
     
  5. Alex1983
    Оффлайн

    Alex1983 Разработчик

    Сообщения:
    848
    Симпатии:
    523
    Я имею виду, что в переменной path нет такого значения. Смотрю через консоль команда path
     
  6. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    и ты не уточнил это должно работать на всех системах? Просто цитирую из статьи
    то есть на системах ниже может её не быть.
    Правда тут есть ссылка на скачивание этой утилиты
    --- Объединённое сообщение, 4 янв 2015 ---
    в cmd или из батника?
     
  7. Alex1983
    Оффлайн

    Alex1983 Разработчик

    Сообщения:
    848
    Симпатии:
    523
    Попробовал в cmd. Работает, но в переменной PATH всё равно нет этой строки C:\myfolder

    А как теперь можно удалить это значение.
    --- Объединённое сообщение, 4 янв 2015, Дата первоначального сообщения: 4 янв 2015 ---
    не много надо поравить
    это 1. Заносить в переменную окружения PATH значение от куда запущен бат файл.
    на это 1. Заносить в переменную окружения PATH значение от куда запущен бат файл + \tools
     
  8. Kиpилл
    Онлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.209
    Симпатии:
    4.977
    Последнее редактирование: 4 янв 2015
    Alex1983 нравится это.
  9. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    либо я не понял задачу. Alex1983, тебе надо, чтобы эта переменная была в батнике и была на время работы батника или добавить в систему, чтобы другие программы видели эту переменную окружения?
     
  10. Alex1983
    Оффлайн

    Alex1983 Разработчик

    Сообщения:
    848
    Симпатии:
    523
    Надо, что бы эта переменная была в системе.
    Для чего это надо, с программой таскаю все длл но для работы они должны быть рядом с программой или систем32.
    В систем32 свои длл копировать не охота(не каждому пользователю это понравится).
    Вот я и хочу добавить в переменную path путь до папки где содержатся все мои длл

    как занести Путь до батфайла или cmd\tools
     
  11. Kиpилл
    Онлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.209
    Симпатии:
    4.977
    Пробуй:
    Код (DOS):
    @echo off
    Chcp 866 >nul
    title text title
    cd /d "%~dp0"


    REG ADD "HKCU\Environment" /v newpatch /t REG_EXPAND_SZ /d "%cd%"
    pause
    exit /B
    Так же может тебе пригодится утилита setenv?
    --- Объединённое сообщение, 4 янв 2015 ---
    Это имя переменной
     
    Alex1983 нравится это.
  12. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    только
    тут надо заменить на
    Код (DOS):
    cd /d "%~dp0\tools"
     
    Alex1983 нравится это.
  13. Kиpилл
    Онлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.209
    Симпатии:
    4.977
    м...почему?
    --- Объединённое сообщение, 4 янв 2015 ---
    Alex1983, %cd% = путь к паке,откуда батник запущен.
     
  14. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    Alex1983, а вообще лучше .dll зашей в ресурсы, а одну 7z.dll можно и рядом оставить. Если программа вдруг будет некорректно завершена, то твоя запись в реестре остнется, так что портативной она не будет (это уже псевдопортабл) и многие пользователи такое не любят ;0.
    --- Объединённое сообщение, 4 янв 2015 ---
    --- Объединённое сообщение, 4 янв 2015 ---
    Koza Nozdri, ты не точен. Ты заносишь в %cd% путь к этой папке, а сам путь к папке %~dp0 добавляем к нему \tools и получаем в %cd% путь откуда запущен бат файл + \tools
     
    Kиpилл нравится это.
  15. Kиpилл
    Онлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.209
    Симпатии:
    4.977
    Стас придет всем нос утрет)
    Alex1983, работает скрипт то?
     
  16. Alex1983
    Оффлайн

    Alex1983 Разработчик

    Сообщения:
    848
    Симпатии:
    523
    Как мне надо то нет.
     
  17. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Alex1983, ты загружаешь свою DLL с неявной компоновкой или через LoadLibrary ?
     
  18. Alex1983
    Оффлайн

    Alex1983 Разработчик

    Сообщения:
    848
    Симпатии:
    523
    с неявной компоновкой.
     
  19. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Вот так не сработает?
    Код (C++):
    #include "tools\mydll.h"
     
  20. Alex1983
    Оффлайн

    Alex1983 Разработчик

    Сообщения:
    848
    Симпатии:
    523
    нет. У меня прописано
    Код (C++):
    #include "curl\curl.h"
    Но даже если есть папка curl и вней mydll.dll то все равно при зугрузке просит mydll.dll
     
    Последнее редактирование модератором: 4 янв 2015

Поделиться этой страницей