![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
cyberTransMutant |
|
||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.5.2008 Репутация: нет Всего: нет |
обьясните пожалуйста, как экспортировать и импортировать либы в разных средах,
на данный момент знаю что есть 2 формата либ coff и omf, знаю как импортировать функции из либ в vc2005 (нужен coff) и в билдер (omf), вот например простой пример импорта и использования функции из либы:
(если захотите проверить testLIB_omf.lib и testLIB_coff.lib есть в приложении) MinGW кажется использует omf формат но с импортом либ в нем у меня проблема
как отключить в MinGW этот "ignoring"? как экспортировать функции? гдето слышал что можно экспортировать и классы? или это тока в длл? Это сообщение отредактировал(а) cyberTransMutant - 18.5.2008, 13:37 Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() |
||||
|
|||||
cyberTransMutant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.5.2008 Репутация: нет Всего: нет |
если кто знает скажите как экспортировать функцию в либ файл в знакомой для вас среде,
нужен просто напросто пример как это все оформляется в одном месте, далее будет понятно что нужно делать/искать в других средах |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
В билдере:
|
|||
|
||||
palva |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
> обьясните пожалуйста, как экспортировать и импортировать либы в разных средах,
Либы - это что такое? Экспортировать можно имена из динамически загружаемых библиотек dll То что вы написали это не экспорт. Это подключение к программе библиотеки с расширением lib. |
|||
|
||||
cyberTransMutant |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.5.2008 Репутация: нет Всего: нет |
пусть так, проблема в том что незнаю как это провернуть в MinGW, bsa спасибо, пока не успел толком разобраться, но экспорт немнога не так пишется:
так удалось экспортировать небольшую функцию:
и импортировать её же:
правда это вовсе не extern "C", и непонятно что там билдер творит в либах и почему он в них полные пути пишет, провеить в VC++ пока немогу, скачал непонятную программу Omf2Coff.exe на неправильном русском и сейчас немного нет времени со всем этим бороться, если кто знает подскажите как в MinGW подключить библиотеки с расширением lib |
||||||||
|
|||||||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
cyberTransMutant
можно и так:
|
||||
|
|||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
cyberTransMutant,
для подключения в проекту lib-файла никакие директивы __export/__import не нужны (если это настоящий lib, а не библиотека импорта сделанная из dll) |
|||
|
||||
cyberTransMutant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.5.2008 Репутация: нет Всего: нет |
спасиб bsa, ток вариант коммандной строки не совсем то,
просто если надо будет включать и выключать некоторое количество либ файлов в проект это немного неудобно, а нельзя также что то в командной строке прописать чтоб он не игнорировал прагму? |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Я знаю, что неудобно. Но mingw пользоваться без IDE невозможно не из командной строки, как и другим компилятором. Так как ты не указал, что у тебя за IDE, то я взял на себя смелость предположить, что компилируешь из консоли. Можно в командной строке прописать ключик, что не будут выводиться предупреждения по поводу игнорирования прагмы. Так же можно в командной строке изменить имя вызываемого компилятора на тот, который понимает эту прагму. Например, bcc32. Так же можно написать простенький Makefile, который будет обрабатываться командой mingw32-make.exe и выполнять инструкции, указанные в нем. |
|||
|
||||
cyberTransMutant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.5.2008 Репутация: нет Всего: нет |
>Можно в командной строке прописать ключик, что не будут выводиться предупреждения по поводу игнорирования прагмы.
не будут выводиться предупреждения - эт бессмысленно ведь прагма всеравно учитываться не будет, >Так же можно в командной строке изменить имя вызываемого компилятора на тот, который понимает эту прагму. нет нужен именно minGW, желательно тот который идет вместе с MinGWDevstudio2.05: - gcc 3.3.1 (20030804-1) (C/C++ only) - binutils 2.14.90 (20030807-1) - mingw runtime 3.2 - w32api 2.4 - gdb 6.0 (20031011) - gnu make 3.80.0-3 - some useful utilities (flex, bison ...) и,bsa незнаете планируют ли в последних версиях minGW включить поддержку прагм? |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
cyberTransMutant, боюсь ты не понял юмора. #pragma поддерживается всеми компиляторами. Но стандарта на нее нет, поэтому у каждого компилятора она работает посвоему.
О вообще забудь о прагме - это непереносимое решение. Подключай библиотеки через настройки проекта. |
|||
|
||||
cyberTransMutant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.5.2008 Репутация: нет Всего: нет |
Спасибо bsa это кокраз то что хотел услышать!
тема закрыта! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |