Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
1

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

17.04.2014, 18:31. Показов 6413. Ответов 42
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема в том, что заюзав кучу динамических библиотек, 20 файлов лежат у меня в директории выходной программы. Хотелось бы их в папочку bin запихнуть, да прога жалуется - найти не может. Настройки проекта смотрел, ничего дельного не нашёл. Не подскажите, что делать?
P.S. надеюсь, исходник не надо...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2014, 18:31
Ответы с готовыми решениями:

Как указать для openFileDialog директорию приложения
я столкнулся с такой проблемой, мне нужно в диалоговом окне открыть выбранную папку с документами я...

Указать стартовую директорию для диалога выбора файла
здравствуйте, помогите разобраться с запросом. Я сделал форму в VBA, сделал там кнопку, по нажатии...

Как компилятору указать директорию заголовочных файлов.
Мне надо на Visual Studio 2010 Ultimate. Нужно указать директорию заголовочных файлов DirectX'а.

Как при Process.Start() указать текущую директорию
Уже обращался сегодня по теме запуска сторонних приложений, но тут возникла другая проблема. Решил...

42
7789 / 6556 / 2984
Регистрация: 14.04.2014
Сообщений: 28,661
17.04.2014, 22:02 2
Ты в чём вообще работаешь? Что за папка bin?
0
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 22:13  [ТС] 3
В Visual Studio, папка bin - папка в директории моей программы, где надо искать библиотеки.
0
Модератор
Эксперт С++
13505 / 10756 / 6411
Регистрация: 18.12.2011
Сообщений: 28,711
17.04.2014, 22:21 4
Такие dll надо зарегистрировать из командной строки
>regsvr32 c:\bin\mydll.dll
0
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 22:31  [ТС] 5
А если я скину другому человеку программу, ему тоже надо будет регистрировать? Нет, так не пойдёт. Должен быть другой способ...
0
Модератор
Эксперт С++
13505 / 10756 / 6411
Регистрация: 18.12.2011
Сообщений: 28,711
17.04.2014, 22:33 6
Цитата Сообщение от WinRar007 Посмотреть сообщение
Должен быть другой способ...
Есть - закинуть их в папку c:\windows\system32\
0
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 23:03  [ТС] 7
Блин, мне нужно, чтоб все dll были в папке bin в директории моей программы (MyProg/bin/example.dll)

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

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


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

Пример.

Добавлено через 1 минуту
Просто прога ищет только в её директории, а в под-директориях - нет.
0
7789 / 6556 / 2984
Регистрация: 14.04.2014
Сообщений: 28,661
17.04.2014, 23:13 8
Так и задумано. Либо в своей, либо в системной.
0
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 23:14  [ТС] 9
Блин, ну на скрине же лежит! Сто раз видел!
0
7789 / 6556 / 2984
Регистрация: 14.04.2014
Сообщений: 28,661
17.04.2014, 23:17 10
Ну может при установке выполняется этот regsvr32, хотя я так не пробовал.
Или применяется динамическая загрузка библиотек через LoadLibrary, там можно путь любой указывать.
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
18.04.2014, 00:33 11
Цитата Сообщение от WinRar007 Посмотреть сообщение
А если я скину другому человеку программу, ему тоже надо будет регистрировать? Нет, так не пойдёт. Должен быть другой способ.
Такой способ есть, называется delay loading:

Linker Support for Delay-Loaded DLLs
http://msdn.microsoft.com/en-u... 90%29.aspx

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

SetDllDirectory function
http://msdn.microsoft.com/en-u... 85%29.aspx
1
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
18.04.2014, 01:54 12
Создайте промежуточный bat файл:
C++
1
2
3
@echo off
SET PATH=%PATH%;%cd%\bin
start myprogram.exe
п.с.
0
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
18.04.2014, 08:10  [ТС] 13
Да? Можно по подробней? Просто, даже когда винду сменил, Spore на скрине и без переустановки запускалась.

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

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

0
7789 / 6556 / 2984
Регистрация: 14.04.2014
Сообщений: 28,661
18.04.2014, 08:12 14
SetDllDirectory влияет только на динамическую загрузку DLL через LoadLibrary. Если привязка статическая, то это бесполезно.

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

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

Добавлено через 45 секунд
Просто можете написать нужный код, а я его Ctrl+C, Ctrl+V?
0
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
18.04.2014, 17:47 16
WinRar007, почему бы не расположить саму запускаемую программу в папку bin, где ей и место, а уже остальные ресурсы по другим папкам?
0
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
18.04.2014, 19:18  [ТС] 17
Прога не будет видеть локальные пути к каталогам "снаружи" bin.
0
7789 / 6556 / 2984
Регистрация: 14.04.2014
Сообщений: 28,661
18.04.2014, 19:22 18
А для чего ей их видеть? Пути в программе можешь переделать через ".."
0
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
18.04.2014, 19:22 19
...

Цитата Сообщение от stima Посмотреть сообщение
Создайте промежуточный bat файл:
C++
1
2
3
@echo off
SET PATH=%PATH%;%cd%\bin
start myprogram.exe
0
Pied Piper
236 / 227 / 57
Регистрация: 15.01.2013
Сообщений: 855
18.04.2014, 19:33 20
Также интересует данный вопрос. К примеру Viber, который написан на qt, держит свои dll в папочке bin. А exe на один уровень выше.
1
18.04.2014, 19:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2014, 19:33
Помогаю со студенческими работами здесь

Как в коде указать директорию в которой находится m - файл
Здравствуйте! В программе используются текстовые файлы, которые находятся непосредственно в...

Как лучше копировать память, обмениваться указателями и т.д. при работе с кучей динамических библиотек (DLL) ?
Привет! Вот есть много DLL-к, каждая работает со своей внутренней динамической памятью, а так же...

Указать директорию
Здравствуйте. Пишу программу в борланде 6, в которой надо указать путь, из которого программа будет...

Создание динамических библиотек
Немогу создать библиотеку такую чтобы она использовала на данный момент активную форму и рисовала...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru