goodmansem
Зарегистрирован: 15.08.2006 Сообщения: 9 Откуда: Томск
|
Добавлено: Чт Май 22 2008 06:19 Заголовок сообщения: Проблема портирования библиотеки MSVC для BCB |
|
|
Есть такая проблема!
1) Создаётся динамическая библиотека вместе с lib-файлом в MSVC. В ней содержится одна экспортируемая функция для создания экземпляра класса, который унаследован от интерфейса с набором функций.
2) Компилируется проект под BCB. Линковщик выдаёт ошибку, мол неправильный формат lib-файла:
LIB' contains invalid OMF record, type 0x21 (possibly COFF)
3) Почитал на форумах....есть такая утилита у BCB coff2omf, которая переделывает формат под нужный.
4) Проект все-таки собирается под BCB.
5) При вызове экспортируемой функции экземпляр создаётся. НО!!! Когда производится вызов интерфейсных функций в классе, программа вылетает, ссылаясь на то, что обращаемся к неправильному адресу памяти!!!
Мои предположения, что MSVC и BCB строят таблицу виртуальных функций по-разному. Может кто сталкивался с такой проблемой.
PS. все функции объявлены как extern "C", со спецификацией вызова в стиле Си (__cdecl). |
|