Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2013, 18:05   #1
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию Создание DLL имея исходный код который собирает LIB в Borland C++ 3.1

В общем то проблема в том, что мне вручили старый проект написанный под DOS в Borland C++ 3.1, который собирает LIB, который потом линкуется с ехешником и работает. Необходимо собрать не LIB, а DLL, чтобы пользоваться в другой программе писанной на C#. Открываю проект и в настройках просто не нахожу вариантов собрать DLL (среду не знаю, пытался сконфигурировать методом тыка), но что бы я не делал он собирает LIB. Поиском нашел эту ссыль но там другая проблема.
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 11.04.2013, 19:55   #2
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

По идеи компилятор должен собирать и LIB и DLL, а иначе программа не запустится из за того что DLL не была найдена.

LIB файл нужен чтобы использовать экспортируемые функции DLL при статическом подключении DLL

Использование DLL без LIB файла проводится с помощью функции:
Код:
LoadLibrary(ПУТЬ);
Более подробно расскажет гугл. Там этой инфы куча.
Так же можно посмотреть тут (на язык программирования не смотрите, там главное WINAPI функции, которые одинаковы во всех языках)
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.

Последний раз редактировалось kineziz; 11.04.2013 в 20:02.
kineziz вне форума Ответить с цитированием
Старый 11.04.2013, 22:00   #3
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию

Цитата:
По идеи компилятор должен собирать и LIB и DLL
Он собирает только LIB, весь вопрос в том как собрать DLL
Цитата:
а иначе программа не запустится из за того что DLL не была найдена.
Программа, которая работала, линковалась с либой и спокойно работала без DLL. Естественно эту либу в проекте на си-шарп юзать не получится, поэтому принято решение собрать DLL и юзать экспортируемые функции. Мне ясно, что в экспортируемые функции надо дописать extern и т.д. не ясно одно, как заставить этот Borland C++ 3.1 собрать не LIB, а DLL.
Цитата:
Использование DLL без LIB файла проводится с помощью функции:
Тут не понял вы юзаете и DLL и LIB вместе

Юзаюзать более современную версию билдера (тестил на билдер 6) не получается по причине использования в проекте определенного набора стандартных функций, которые отсутствуют в билдер 6.
З.Ы. сейчас как раз пытаюсь подбирать аналоги, что то безболезненно удалять, добавлять extern в экспортируемые функции, в общем ковырять код в попытке его собрать.
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 11.04.2013, 23:35   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от kineziz Посмотреть сообщение
По идеи компилятор должен собирать и LIB и DLL, а иначе программа не запустится из за того что DLL не была найдена.

LIB файл нужен чтобы использовать экспортируемые функции DLL при статическом подключении DLL

Использование DLL без LIB файла проводится с помощью функции:
Код:
LoadLibrary(ПУТЬ);
Более подробно расскажет гугл. Там этой инфы куча.
Так же можно посмотреть тут (на язык программирования не смотрите, там главное WINAPI функции, которые одинаковы во всех языках)
вы не знаете что такое либ?
это библиотека, она может содержать так же и код, и линкуется с exe на этапе сборки бинарника, и лежит внутри него.
она не обязана содержать ссылки на длл.
тем более борланд 3,1 это ж дос вроде.
к сожалению надо смотреть код в новой версии билдера, и там уже переделать в длл.

кстати, другой вариант, соберите либку, потом создайте проект длл, в него подключите эту либку и экспортируйте её функции.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 11.04.2013 в 23:37.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.04.2013, 00:11   #5
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию

Пепел Феникса Вы правы это среда под дос, правда ее можно запустить под 32 разрядной хр. Сейчас иду по первому из предложенных вариантов, но на вскидку мне понравился ваш второй вариант, буду пробовать. Спасибо!
З.Ы. +1 в репу поставить не смог
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 12.04.2013, 03:39   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от iukash Посмотреть сообщение
Пепел Феникса Вы правы это среда под дос, правда ее можно запустить под 32 разрядной хр. Сейчас иду по первому из предложенных вариантов, но на вскидку мне понравился ваш второй вариант, буду пробовать. Спасибо!
З.Ы. +1 в репу поставить не смог
то что можно запустить ничего не значит.
код нужно пересобирать под винду, иначе никак.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
файлы lib и dll Golovastik Общие вопросы C/C++ 2 29.05.2010 23:23
Создание DLL в Borland C++ 3.1 KuevProger Общие вопросы C/C++ 11 22.09.2009 08:45
Как загрузить свою DLL в атакуемый процесс, который не знает о ее существовании - Создание хуков KleoY Win Api 18 30.03.2009 14:31
DLL через Lib kiloruble Общие вопросы C/C++ 1 02.12.2008 22:58
Как имея handle окна узнать handle edit-a который находится в етом окне SeRhy Общие вопросы Delphi 1 20.07.2008 13:48