Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / DLL and LIB / 11 сообщений из 11, страница 1 из 1
03.06.2005, 10:10
    #33098864
Владимир3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
Visual C++ 6.0

СОЗДАЛ СВОЮ RegularDll.DLL and RegularDll.LIB
При вызове функции
m_dSum = MySum(m_dInput,m_dOutput);
из неё выводится сообщение

Приложению не удалось запуститься, поскольку
RegularDll.dll не был найден.
Повторная установка приложения может исправить эту проблему

Помещал их в каталог
windows\system32

менял строки в меню
Project\Settings окружения Visual C++ 6.0

Апробированы следующие варианты:
в двойных кавычках:
1 - "C:\pavorotty\RegularDll\Debug\RegularDll.lib"
2 - C:\pavorotty\RegularDll\Debug\RegularDll.lib
3 - C:\1_spilnyck_gas_020605\SeveralViews_MDI_2\RegularDll_my\RegularDll.lib
4 - RegularDll\RegularDll.lib
5 - windows\system32

ГДЕ НАДО РАЗМЕЩАТЬ DLL and LIB ?
ЧТОБЫ ПУТЬ НЕ УКАЗЫВАТЬ в меню Project\Settings
КАКИЕ СИСТЕМНІЕ КАТАЛОГИ ВОСПРИНИМАЮТСЯ ПО УМОЛЧАНИЮ?
PS: ПРИ ОТЛАДКЕ БЫЛО ВСЁ ОК!
СООБЩЕНИЕ ПОЯВИЛОСЬ ПОСЛЕ ТОГО,КАК ПРИЛОЖЕНИЕ
ЗАПУСТИЛ НА ДРУГОМ КОМПЬЮТЕРЕ.

СПАСИБО
...
Рейтинг: 0 / 0
03.06.2005, 10:23
    #33098897
Кодер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
По стандарту ищется в текущей, потом откуда запустили программу,потом в системной директории Windows, потом в путях переменной PATH. lib нужна только компоновщику (link) на время его работы.
...
Рейтинг: 0 / 0
03.06.2005, 10:59
    #33099051
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
В каталог, откуда запускаешь приложение, клади - не ошибешься.
...
Рейтинг: 0 / 0
03.06.2005, 13:24
    #33099630
Владимир3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
В каталог, откуда запускаешь приложение, клади - не ошибешься автор

ЭТО ДЕЙСТВИТЕЛЬНО ТАК, ПЕРЕД ЭТИМ ПОМЕСТИЛ
В debug - было ОК !

СПАСИБО
...
Рейтинг: 0 / 0
09.07.2005, 12:21
    #33157965
gl@z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
А двойном слешом в пути попробовал? Когда-то у меня бьiла такая проблема, так и решил.
...
Рейтинг: 0 / 0
11.07.2005, 12:12
    #33159105
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
1) LIB
Либ это библиотека некоего кода. Библиотеку Вы и сами могёте сделать. Для этого превращаем исходный код в бинарный (процесс называеться компиляция). Сама програмулина называеться компилятором, он же транслятор, он же манька облигация...тьху.. (про маньку - то шутка). Задача компилятора - прочитать "человеческий" формализованный язык, из текстового файла и превратить его в модуль, формат которого привязан только к процессору (для которого компилировали). Имееться ввиду на выходе получаеться бинарный код, НО в нём нет ЯВНЫХ адрессов. Ну например... На месте команды "дальний переход по адрессу" стоит дальний переход нул-нул-нул-нул. А в заголовке такого файла написано, что дескать требуеться нечто под именем Вася и адресс этого Васи вставить туда то... Физически эти файлы имеют расширение (обычно, под досом и виндами) OBJ, что обзываеться как обьектный. Дык вот... Из данных обьектников можно состряпать библиотеку, физически носящую расширение LIB. Как правило для этого служит одноимённая программулина, запускающаяся из командной строки (ну типа LIB.EXE). Задача последней - создать/добавить/извлечь определённый обьектник в/из библиотеки.
Далее в программе говорите, дескать вот этот класс или подпрограммка или данные - есть внешнии. И на стадии линкования своей программы, указываете необходимую библиотеку с расширением LIB. Линковщик лезет в Вашу ЛИБ находит то что ищет, вытаскивает данный кусок и вставляет в Ваш исполняемый (бум считать что выход - экзешник) файл. Далее "либа" не нужна.
Нужно так же отметить, что существуют нюансы вызова подпрограмм. Основной из них - это очистка стэка. Т.к. данные передаються через стэк, то очистка стэка может происходить как ВЫЗЫВАЕМЫМ кодом, так и ВЫЗВАВШИМ.
2) DLL
Ну тут ышо просче. От слова Динамически Загружаемая Библиотека. Т.е. до момента загрузки в память этой библиотеки её код НЕ содержиться в исполняемом файле. Или наоборот. Необходимо обеспечить загрузку (пути по которым операционка ищет по умолчанию - указаны выше) данной библиотеки при запуске Вашего приложения.
Необходимо отметить не редко встречаемый нюанс. Именна библиотек отличаються при различных сборках. Например дебажная от релизной отличаеться присутствием на конце имени библиотеки буковки "D". Ну это и понятно. ДэЛеЛе дебажная, несёт в себе вспомогательную информацию и как правило бинарный код не оптимизирован (по умолчанию - по скорости).


с уважением
(круглый)
...
Рейтинг: 0 / 0
11.07.2005, 12:28
    #33159164
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
И ещё...
Надо помнить следующее.. Что Вы должны обеспечить:
1) Нахождение динамически загружаемой библиотеки.
2) Обеспечить подгрузку ВСЕХ ДРУГИХ динамически загружаемых библиотек, НА КОТОРЫЕ ссылаеться Ваша. Узнать перечень ВСЕХ требуемых динамических библиотек можно следующей утилиткой...

Depends

она обычно поставляеться в общих тулзах при компиляторе. Натравливаешь её на файл библиотеки в интересуемом каталоге и узнаёшь чаво не хватат.

с уважением
(круглый)
...
Рейтинг: 0 / 0
11.07.2005, 13:26
    #33159280
gl@z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
Depends - это здорово. Попробуйте также PEBundle - по моему, очень хорошая штука, хорошо дополняет Depends. Судите сами:

"PEBundle allows for an executable's (or DLL's) dependencies to be physically or remotely bound to itself so that they need not be distributed or installed separately from the application. Using a high performance compression algorithm, PEBundle compresses all bound modules so that the host executable's size grows as little as possible given the bound data."
...
Рейтинг: 0 / 0
11.07.2005, 17:47
    #33159988
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
kolobok0Сама програмулина называеться компилятором, он же транслятор, он же манька облигация...тьху.. (про маньку - то шутка).
Компилятор и транслятор это разные вещи. Так шуток тут на самом деле две.
...
Рейтинг: 0 / 0
11.07.2005, 18:42
    #33160094
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
White OwlКомпилятор и транслятор это разные вещи. Так шуток тут на самом деле две.

Если так подходить - тут побольше шуток будет... ик.. но думаю, для начала инфы достаточно.


с уважением
(круглый)
...
Рейтинг: 0 / 0
11.07.2005, 20:22
    #33160212
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL and LIB
kolobok0 White OwlКомпилятор и транслятор это разные вещи. Так шуток тут на самом деле две.
Если так подходить - тут побольше шуток будет... ик.. но думаю, для начала инфы достаточно.
А я просто дальше не читал :)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / DLL and LIB / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]