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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
#1

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

17.04.2014, 18:31. Просмотров 1300. Ответов 41
Метки нет (Все метки)

Проблема в том, что заюзав кучу динамических библиотек, 20 файлов лежат у меня в директории выходной программы. Хотелось бы их в папочку bin запихнуть, да прога жалуется - найти не может. Настройки проекта смотрел, ничего дельного не нашёл. Не подскажите, что делать?
P.S. надеюсь, исходник не надо...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2014, 18:31     Как указать директорию для динамических библиотек
Посмотрите здесь:
Как компилятору указать директорию заголовочных файлов. C++
Как лучше копировать память, обмениваться указателями и т.д. при работе с кучей динамических библиотек (DLL) ? C++
C++ Разработка динамических библиотек
C++ Зависимость от динамических библиотек
C++ Создание динамических библиотек DLL С++
C++ Указать директорию компиляции в code::blocks
C++ Быстродействие программы при использовании статических и динамических библиотек
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5274 / 4594 / 1539
Регистрация: 14.04.2014
Сообщений: 18,249
17.04.2014, 22:02     Как указать директорию для динамических библиотек #2
Ты в чём вообще работаешь? Что за папка bin?
WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 22:13  [ТС]     Как указать директорию для динамических библиотек #3
В Visual Studio, папка bin - папка в директории моей программы, где надо искать библиотеки.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
17.04.2014, 22:21     Как указать директорию для динамических библиотек #4
Такие dll надо зарегистрировать из командной строки
>regsvr32 c:\bin\mydll.dll
WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 22:31  [ТС]     Как указать директорию для динамических библиотек #5
А если я скину другому человеку программу, ему тоже надо будет регистрировать? Нет, так не пойдёт. Должен быть другой способ...
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
17.04.2014, 22:33     Как указать директорию для динамических библиотек #6
Цитата Сообщение от WinRar007 Посмотреть сообщение
Должен быть другой способ...
Есть - закинуть их в папку c:\windows\system32\
WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 23:03  [ТС]     Как указать директорию для динамических библиотек #7
Блин, мне нужно, чтоб все dll были в папке bin в директории моей программы (MyProg/bin/example.dll)

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

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

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

Добавлено через 1 минуту
Просто прога ищет только в её директории, а в под-директориях - нет.
nmcf
5274 / 4594 / 1539
Регистрация: 14.04.2014
Сообщений: 18,249
17.04.2014, 23:13     Как указать директорию для динамических библиотек #8
Так и задумано. Либо в своей, либо в системной.
WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 23:14  [ТС]     Как указать директорию для динамических библиотек #9
Блин, ну на скрине же лежит! Сто раз видел!
nmcf
5274 / 4594 / 1539
Регистрация: 14.04.2014
Сообщений: 18,249
17.04.2014, 23:17     Как указать директорию для динамических библиотек #10
Ну может при установке выполняется этот regsvr32, хотя я так не пробовал.
Или применяется динамическая загрузка библиотек через LoadLibrary, там можно путь любой указывать.
Убежденный
Системный программист
Эксперт С++
15296 / 6928 / 1096
Регистрация: 02.05.2013
Сообщений: 11,338
Завершенные тесты: 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
457 / 306 / 24
Регистрация: 22.03.2011
Сообщений: 996
Завершенные тесты: 2
18.04.2014, 01:54     Как указать директорию для динамических библиотек #12
Создайте промежуточный bat файл:
C++
1
2
3
@echo off
SET PATH=%PATH%;%cd%\bin
start myprogram.exe
п.с.
WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
18.04.2014, 08:10  [ТС]     Как указать директорию для динамических библиотек #13
Да? Можно по подробней? Просто, даже когда винду сменил, Spore на скрине и без переустановки запускалась.

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

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

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

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

Dll статически привязаны?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 13:07     Как указать директорию для динамических библиотек
Еще ссылки по теме:
Как указать место для сохранения данных в txt C++
Как прочитать корневую директорию, как файл в hex-ввиде? C++
Работает для целых чисел, надо чтоб работало для действительных, не добавляя библиотек C++
C++ Как создать директорию?
Как создать директорию? C++

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

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

Добавлено через 45 секунд
Просто можете написать нужный код, а я его Ctrl+C, Ctrl+V?
Yandex
Объявления
18.04.2014, 13:07     Как указать директорию для динамических библиотек
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru