MCU_Hunter 0 20 июля, 2006 Опубликовано 20 июля, 2006 · Жалоба Привет знатокам! Кто использовал dll библиотеку из пакета USBXpress (для микроконтроллеров C8051F320/340) совместно с Borland C++ Builder? Поделитесь опытом! Сложность в том, что динамическая библиотека создана под VC++, который, как известно, не совместим с Borland C++ Builder!!! С Уважением Charley Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
o-henry 0 20 июля, 2006 Опубликовано 20 июля, 2006 · Жалоба У меня была похожая проблема. В комплекте с заказным железом шла динамическая библиотека api_1.dll, заголовочный файл api_1.h и библиотечный файл api_1.lib Проблема была в том, что файл api_1.lib расчитан на подключение к VisualC++ 6.0 (не подходит для подключения к проекту на С++Builder). Как решал проблему: Сгенерировал для себя библиотечный файл api_1_builder.lib с помощью утилиты implib.exe. (implib.exe находится в поддиректории Bin той папки, в которую установлен С++Builder). Пример командной строки, с помощью которой была получена библиотека api_1_strobe_lib2.lib приведен ниже: implib -a api_1_builder.lib api_1.dll Правда пришлось так же малость подкорректировать заголовочный файл: В исходном заголовочном файле api_1.h были такие строки: #ifdef API_1_EXPORTS #define API_1_API __declspec(dllexport) #else #define API_1_API __declspec(dllimport) #endif Их пришлось заменить на на следующие строки: #ifdef API_1_EXPORTS #define API_1_API extern "C" __declspec(dllexport) #else #define API_1_API extern "C" __declspec(dllimport) #endif После чего проект в билдере благополучно собрался. Удачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MCU_Hunter 0 20 июля, 2006 Опубликовано 20 июля, 2006 · Жалоба В исходном заголовочном файле api_1.h были такие строки: #ifdef API_1_EXPORTS #define API_1_API __declspec(dllexport) #else #define API_1_API __declspec(dllimport) #endif Их пришлось заменить на на следующие строки: #ifdef API_1_EXPORTS #define API_1_API extern "C" __declspec(dllexport) #else #define API_1_API extern "C" __declspec(dllimport) #endif Спасибо за ответ. Из Вашего ответа только модификация файла заголовка была для меня новой! Все остальное я делал также... Проект компилируется без ошибок, однако не работает... Увы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться