|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.03.2015, 15:42 | #1 |
Регистрация: 13.03.2015
Сообщений: 7
|
[Linker error] Unresolved internal...
Доброго времени суток! Проблема в следующем. Файлы DLL и LIB разработаны в Visual Studio. Мне нужно использовать эту библиотеку в C++ Builder 5. Добавил LIB в проект. При компиляции возникает ошибка:
[Linker error] Mylib.lib contains invalid OEM record, type 0x21 (possibly COFF) С помощью implib я создал собственный LIB. Теперь выдаётся ошибка: [Linker error] Unresolved internal... (ну и куча функций). Как можно корректно подключить третьестороннюю библиотеку? P.S. Интересный факт. Оригинальный LIB-файл был 109 КБ, созданный мной файл 63КБ. Проверял с помощью IMPDEF'а - все ссылки указаны. |
13.03.2015, 20:57 | #2 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Непростая это тема. Скорее всего не получиться таким образом.
Лучше попробвать сделать либу импорта: IMPLIB mydll.lib mydll.dll (надо попробовать с разными ключами), если статическая линковка проканает, то положить dll-ку к файлу с проектом. Есть еще такая утилита COFF2OMF.EXE. Если не получится сделать либу импорта, тогда только динамическая линковка: LoadLibrary и GetProcAddress, много кода, но работает на 100%.
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
16.03.2015, 15:16 | #3 |
Регистрация: 13.03.2015
Сообщений: 7
|
Спасибо, Krok27! Утилита COFF2OMF.EXE помогла. Теперь проблема в другом. Прога отлавливает определенные системные события. Их экзешник это делает, а откомпилированный мной - нет. Т.е. проходит успешная инициализация и тишина: не событий. Запускаю их экзешник: событий полно. Я счас пытаюсь у разработчика выяснить, в чём проблема, но хотелось бы самому понять, чего ещё не хватает. Библиотека подключена, заголовочные файлы тоже все на месте. Что ещё надо?
|
16.03.2015, 21:03 | #4 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Тогда библиотеку в студию, на препарирование.
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
17.03.2015, 12:43 | #5 |
Регистрация: 13.03.2015
Сообщений: 7
|
|
17.03.2015, 12:55 | #6 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Тут можно вставить, перейти в расширенный режим надо
И текст программы тоже не помешает
Знающий не говорит, говорящий не знает (С) Лао Цзы
Последний раз редактировалось Krok27; 17.03.2015 в 13:01. |
17.03.2015, 13:03 | #7 |
Регистрация: 13.03.2015
Сообщений: 7
|
Прикрепил. Две библиотечки: COFF и OMF.
|
17.03.2015, 16:43 | #8 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Эти меньше всего интересуют, DLL надо.
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
17.03.2015, 17:16 | #9 |
Регистрация: 13.03.2015
Сообщений: 7
|
Отправил в архиве из двух частей.
|
17.03.2015, 21:36 | #10 | |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Значитцо так:
1. Смотрим таблицу импорта DLL: TDUMP -ee -m blpapi3_32.dll > blpapi3_32.dll.LST 2. Генерим либу импорта для BCB IMPLIB.exe blpapi3_32.lib blpapi3_32.dll 3. Смотрим, что импортирует наша сгенеренная либа: TLIB blpapi3_32.lib, blpapi3_32.lst Если не будет работать, значит тебе не повезло и придется динамически линковаться. Для чего эта блумберговская приблуда? Цитата:
В твоей сгенеренной либе названия функция начинаются с нижнего подчеркивания, тогда и вызывай их, предваряя их нижним подчеркиванием. Вот тут про использование таких библиотек
Знающий не говорит, говорящий не знает (С) Лао Цзы
Последний раз редактировалось Krok27; 18.03.2015 в 12:06. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Internal error | RaulGain | Общие вопросы Delphi | 1 | 02.10.2013 04:42 |
[ILINK32 Error] Error: Unresolved external... | Equilibrium Keeper | Общие вопросы C/C++ | 3 | 12.02.2010 18:12 |
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/main.exe : fatal error LNK11 | prefak | Win Api | 0 | 19.04.2009 16:51 |