![]() |
|
|
![]()
|
|
| NiТR0 |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 28.6.2005 Репутация: нет Всего: нет |
Захотел использовать *.def для экспорта ф-ий.Нашёл в инете след. материал:
Так вот. НЕ РАБОТАЕТ! Пишет: — для 1 строки : error C2143: syntax error : missing ';' before 'string' error C2501: 'LIBRARY' : missing storage-class or type specifiers — для 3 строки : error C2018: unknown character '0x40' Вопрос: ПОЧЕМУ? ... и КАК БЫТЬ? Подскажите пожалуйста. Спасибо. |
||||||
|
|||||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 4 Всего: 44 |
а кто за тебя будет писать EXPORTS
вот тебе пример деф файла EXPORTS Func1 @1 Func2 @2 Func3 @3 Это сообщение отредактировал(а) chaos - 7.10.2005, 12:45 |
|||
|
||||
| Earnest |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Экспорт функций с помощью def- файла - дело геморройное.
Во-первых, там должны быть истинные (decorated) имена, которые весьма отличаются от имен, которые ты пишешь в C++ файле. Во-вторых, если ты изменяешь определение функции - будь добр изменить строку в def-файле... Короче, def-файл - это прошлый век (или если программа на чистом C) Гораздо проще так: функции, которые экспортируешь, должны быть объявлены как __declspec(dllexport). Соответственно, в тех модулях, где ты их используешь (импортируешь), они должны быть объявлены как __declspec(dllimport). Поскольку плодить по 2 хедера (с описаниями функций для экспорта и импорта) весьма неудобно, можно поступить так: 1) где нибудь в обще-доступном хедере пишешь такие строки
2) в параметрах препроцессора для своей DLL добавляешь символ _XXXDLL 3) экспортируемые функции и классы объявляешь так:
Дальше все экспортируется и импортируется само... Это сообщение отредактировал(а) Earnest - 7.10.2005, 14:27 -------------------- ... |
||||
|
|||||
| NiТR0 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 28.6.2005 Репутация: нет Всего: нет |
Так я уже делал.
Просто хотел попробовать Все работает, на самом деле, просто я def includom подключал. Убрал и всё хорошо. =) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |