Использование встроенной DLL MinGW / GCC в проекте Visual Studio 2010 C ++ / CLI - PullRequest
1 голос
/ 10 октября 2010

У меня есть коммуникационная библиотека, построенная поверх Qt и буферов протокола Google. В настоящее время он собирается с MinGW / GCC для Windows. Моя цель - использовать ту же библиотеку в C # на .NET, с помощью тонкой оболочки поверх C ++ / CLI (связывая неуправляемый код с управляемым кодом).

Я пытался использовать DLL, созданную MinGW, непосредственно в своем проекте C ++ / CLI, но я продолжаю получать ошибки компоновщика (сейчас я не могу вспомнить коды ошибок, но что-то не хватает токенов и функций / сигнатур).

Первый вопрос: могу ли я использовать созданную MinGW DLL с компилятором / компоновщиком Visual Studio? Или мне нужно снова скомпилировать библиотеку, используя только VS-компилятор для всех проектов?

Если я должен иметь возможность использовать DLL, созданную MinGW напрямую, как я могу ссылаться на нее в Visual Studio 2010? В настройках проекта он ищет файлы * .lib, но я не могу найти файлы .lib в выводе MinGW / GCC. Он производит * .a файлы, но кажется, что Visual Studio не обрабатывает такие файлы ..

Я должен также упомянуть, что и Qt, и protobuf также скомпилированы с MinGW. Но я, конечно, могу перекомпилировать все части в VS 2010, если это необходимо. Было бы неплохо сэкономить время перекомпиляции, поскольку наш сборочный сервер уже имеет рабочую настройку с использованием MinGW.

1 Ответ

2 голосов
/ 10 октября 2010

Самый простой способ использовать его - перекомпилировать его с Visual Studio. Это когда я предполагаю, что типы и классы C ++ используются в интерфейсе, который вы намереваетесь использовать.

Если у вас есть интерфейс C к этой библиотеке, вы можете динамически загрузить библиотеку через LoadLibrary и использовать GetProcAddress для доступа к этим функциям.

Однако это полностью зависит от того, как вы собираетесь использовать библиотеку.

...