Форум программистов, компьютерный форум CyberForum.ru

Как указать директорию для динамических библиотек - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
WinRar007
 Аватар для WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 18:31     Как указать директорию для динамических библиотек #1
Проблема в том, что заюзав кучу динамических библиотек, 20 файлов лежат у меня в директории выходной программы. Хотелось бы их в папочку bin запихнуть, да прога жалуется - найти не может. Настройки проекта смотрел, ничего дельного не нашёл. Не подскажите, что делать?
P.S. надеюсь, исходник не надо...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2014, 18:31     Как указать директорию для динамических библиотек
Посмотрите здесь:

Как компилятору указать директорию заголовочных файлов. C++
C++ Указать директорию компиляции в code::blocks
C++ Как создать директорию?
C++ Разработка динамических библиотек
C++ Зависимость от динамических библиотек
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4283 / 3714 / 1248
Регистрация: 14.04.2014
Сообщений: 14,522
17.04.2014, 22:02     Как указать директорию для динамических библиотек #2
Ты в чём вообще работаешь? Что за папка bin?
WinRar007
 Аватар для WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 22:13  [ТС]     Как указать директорию для динамических библиотек #3
В Visual Studio, папка bin - папка в директории моей программы, где надо искать библиотеки.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,165
Завершенные тесты: 1
17.04.2014, 22:21     Как указать директорию для динамических библиотек #4
Такие dll надо зарегистрировать из командной строки
>regsvr32 c:\bin\mydll.dll
WinRar007
 Аватар для WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 22:31  [ТС]     Как указать директорию для динамических библиотек #5
А если я скину другому человеку программу, ему тоже надо будет регистрировать? Нет, так не пойдёт. Должен быть другой способ...
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,165
Завершенные тесты: 1
17.04.2014, 22:33     Как указать директорию для динамических библиотек #6
Цитата Сообщение от WinRar007 Посмотреть сообщение
Должен быть другой способ...
Есть - закинуть их в папку c:\windows\system32\
WinRar007
 Аватар для WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 23:03  [ТС]     Как указать директорию для динамических библиотек #7
Блин, мне нужно, чтоб все dll были в папке bin в директории моей программы (MyProg/bin/example.dll)

Добавлено через 21 секунду
И их прекрасно находила сама программа.

Добавлено через 1 минуту
Как указать директорию для динамических библиотек

Как указать директорию для динамических библиотек
Пример.

Добавлено через 1 минуту
Просто прога ищет только в её директории, а в под-директориях - нет.
nmcf
4283 / 3714 / 1248
Регистрация: 14.04.2014
Сообщений: 14,522
17.04.2014, 23:13     Как указать директорию для динамических библиотек #8
Так и задумано. Либо в своей, либо в системной.
WinRar007
 Аватар для WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 23:14  [ТС]     Как указать директорию для динамических библиотек #9
Блин, ну на скрине же лежит! Сто раз видел!
nmcf
4283 / 3714 / 1248
Регистрация: 14.04.2014
Сообщений: 14,522
17.04.2014, 23:17     Как указать директорию для динамических библиотек #10
Ну может при установке выполняется этот regsvr32, хотя я так не пробовал.
Или применяется динамическая загрузка библиотек через LoadLibrary, там можно путь любой указывать.
Убежденный
Системный программист
 Аватар для Убежденный
14188 / 6203 / 984
Регистрация: 02.05.2013
Сообщений: 10,331
Завершенные тесты: 1
18.04.2014, 00:33     Как указать директорию для динамических библиотек #11
Цитата Сообщение от WinRar007 Посмотреть сообщение
А если я скину другому человеку программу, ему тоже надо будет регистрировать? Нет, так не пойдёт. Должен быть другой способ.
Такой способ есть, называется delay loading:

Linker Support for Delay-Loaded DLLs
http://msdn.microsoft.com/en-us/libr...=vs.90%29.aspx

Настроить папки для поиска dll поможет функция

SetDllDirectory function
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
stima
429 / 284 / 16
Регистрация: 22.03.2011
Сообщений: 926
Завершенные тесты: 1
18.04.2014, 01:54     Как указать директорию для динамических библиотек #12
Создайте промежуточный bat файл:
C++
1
2
3
@echo off
SET PATH=%PATH%;%cd%\bin
start myprogram.exe
п.с.
WinRar007
 Аватар для WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
18.04.2014, 08:10  [ТС]     Как указать директорию для динамических библиотек #13
Да? Можно по подробней? Просто, даже когда винду сменил, Spore на скрине и без переустановки запускалась.

Добавлено через 15 минут
Не совсем понятно, как именно назначить путь.

Добавлено через 10 минут
Разобрался, но всё равно не видит.
Миниатюры
Как указать директорию для динамических библиотек   Как указать директорию для динамических библиотек   Как указать директорию для динамических библиотек  

nmcf
4283 / 3714 / 1248
Регистрация: 14.04.2014
Сообщений: 14,522
18.04.2014, 08:12     Как указать директорию для динамических библиотек #14
SetDllDirectory влияет только на динамическую загрузку DLL через LoadLibrary. Если привязка статическая, то это бесполезно.

Да и путь ты неправильно указываешь, надо либо полный, либо относительно текущей: ".\\bin\\"

Dll статически привязаны?
WinRar007
 Аватар для WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
18.04.2014, 13:07  [ТС]     Как указать директорию для динамических библиотек #15
Извините, но я не знаю, как определить. Да, я профан.

Добавлено через 45 секунд
Просто можете написать нужный код, а я его Ctrl+C, Ctrl+V?
iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
18.04.2014, 17:47     Как указать директорию для динамических библиотек #16
WinRar007, почему бы не расположить саму запускаемую программу в папку bin, где ей и место, а уже остальные ресурсы по другим папкам?
WinRar007
 Аватар для WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
18.04.2014, 19:18  [ТС]     Как указать директорию для динамических библиотек #17
Прога не будет видеть локальные пути к каталогам "снаружи" bin.
nmcf
4283 / 3714 / 1248
Регистрация: 14.04.2014
Сообщений: 14,522
18.04.2014, 19:22     Как указать директорию для динамических библиотек #18
А для чего ей их видеть? Пути в программе можешь переделать через ".."
stima
429 / 284 / 16
Регистрация: 22.03.2011
Сообщений: 926
Завершенные тесты: 1
18.04.2014, 19:22     Как указать директорию для динамических библиотек #19
...

Цитата Сообщение от stima Посмотреть сообщение
Создайте промежуточный bat файл:
C++
1
2
3
@echo off
SET PATH=%PATH%;%cd%\bin
start myprogram.exe
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 19:33     Как указать директорию для динамических библиотек
Еще ссылки по теме:

C++ Создание динамических библиотек DLL С++
Как лучше копировать память, обмениваться указателями и т.д. при работе с кучей динамических библиотек (DLL) ? C++
Как указать место для сохранения данных в txt C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ArmanPrestige
 Аватар для ArmanPrestige
219 / 210 / 50
Регистрация: 15.01.2013
Сообщений: 787
18.04.2014, 19:33     Как указать директорию для динамических библиотек #20
Также интересует данный вопрос. К примеру Viber, который написан на qt, держит свои dll в папочке bin. А exe на один уровень выше.
Yandex
Объявления
18.04.2014, 19:33     Как указать директорию для динамических библиотек
Ответ Создать тему
Опции темы

Текущее время: 15:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru