Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

Проблема в том, что заюзав кучу динамических библиотек, 20 файлов лежат у меня в директории выходной программы. Хотелось бы их в папочку bin запихнуть, да прога жалуется - найти не может. Настройки проекта смотрел, ничего дельного не нашёл. Не подскажите, что делать?
P.S. надеюсь, исходник не надо...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2014, 18:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как указать директорию для динамических библиотек (C++):

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

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

Указать директорию - C++
Здравствуйте. Пишу программу в борланде 6, в которой надо указать путь, из которого программа будет брать фаилы. С помощью чего это можно...

Разработка динамических библиотек - C++
Какая есть литература по разработке dll на русском/английском (язык не важен) или появится в ближайшее время ?

Зависимость от динамических библиотек - C++
Как определить от каких дин. библиотек зависит приложение, в Linux ldd в Windows есть что то подобное?

Создание динамических библиотек DLL С++ - C++
Помогите реализовать на С++ : Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр...

41
nmcf
5538 / 4848 / 1644
Регистрация: 14.04.2014
Сообщений: 19,670
17.04.2014, 22:02 #2
Ты в чём вообще работаешь? Что за папка bin?
0
WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 22:13  [ТС] #3
В Visual Studio, папка bin - папка в директории моей программы, где надо искать библиотеки.
0
zss
Модератор
Эксперт С++
6532 / 6094 / 2007
Регистрация: 18.12.2011
Сообщений: 15,851
Завершенные тесты: 1
17.04.2014, 22:21 #4
Такие dll надо зарегистрировать из командной строки
>regsvr32 c:\bin\mydll.dll
0
WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 22:31  [ТС] #5
А если я скину другому человеку программу, ему тоже надо будет регистрировать? Нет, так не пойдёт. Должен быть другой способ...
0
zss
Модератор
Эксперт С++
6532 / 6094 / 2007
Регистрация: 18.12.2011
Сообщений: 15,851
Завершенные тесты: 1
17.04.2014, 22:33 #6
Цитата Сообщение от WinRar007 Посмотреть сообщение
Должен быть другой способ...
Есть - закинуть их в папку c:\windows\system32\
0
WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 23:03  [ТС] #7
Блин, мне нужно, чтоб все dll были в папке bin в директории моей программы (MyProg/bin/example.dll)

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

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

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

Добавлено через 1 минуту
Просто прога ищет только в её директории, а в под-директориях - нет.
0
nmcf
5538 / 4848 / 1644
Регистрация: 14.04.2014
Сообщений: 19,670
17.04.2014, 23:13 #8
Так и задумано. Либо в своей, либо в системной.
0
WinRar007
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
17.04.2014, 23:14  [ТС] #9
Блин, ну на скрине же лежит! Сто раз видел!
0
nmcf
5538 / 4848 / 1644
Регистрация: 14.04.2014
Сообщений: 19,670
17.04.2014, 23:17 #10
Ну может при установке выполняется этот regsvr32, хотя я так не пробовал.
Или применяется динамическая загрузка библиотек через LoadLibrary, там можно путь любой указывать.
0
Убежденный
Ушел с форума
Эксперт С++
15701 / 7211 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
18.04.2014, 00:33 #11
Цитата Сообщение от WinRar007 Посмотреть сообщение
А если я скину другому человеку программу, ему тоже надо будет регистрировать? Нет, так не пойдёт. Должен быть другой способ.
Такой способ есть, называется delay loading:

Linker Support for Delay-Loaded DLLs
http://msdn.microsoft.com/en-us/library/151kt790%28v=vs.90%29.aspx

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

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

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

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

nmcf
5538 / 4848 / 1644
Регистрация: 14.04.2014
Сообщений: 19,670
18.04.2014, 08:12 #14
SetDllDirectory влияет только на динамическую загрузку DLL через LoadLibrary. Если привязка статическая, то это бесполезно.

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

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

Добавлено через 45 секунд
Просто можете написать нужный код, а я его Ctrl+C, Ctrl+V?
0
18.04.2014, 13:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 13:07
Привет! Вот еще темы с ответами:

Указать директорию компиляции в code::blocks - C++
Всем доброго времени суток! Недавно скачал code::blocks, никак немогу разобраться есть ли функция указать компилятору куда сохранять...

Быстродействие программы при использовании статических и динамических библиотек - C++
Всем привет! Понимаю, что вопрос простой... но не могу, не получить экспертного мнения. Правильно ли я понимаю, что программы, которые...

Как указать место для сохранения данных в txt - C++
с помощью параметра командной строки? Заранее спасибо!

Как прочитать корневую директорию, как файл в hex-ввиде? - C++
Файл можно открыть так: #include <iostream> #include <cstdio> int main() { FILE * ptrFile = fopen("G:\filename.txt",...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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