Может ли Netbeans (MinGW-компилятор для c / c ++) вызывать произвольные библиотеки C / C ++ DLL (скомпилированные в VS'05)? - PullRequest
1 голос
/ 16 февраля 2011

Как указано выше, я столкнулся с "неопределенной ошибкой ссылки imp _ZN12classNameC1Ev " при использовании JNI для вызова функций класса в произвольно предоставленной DLL. Мне интересно, является ли ошибка в несовместимости имен для 2 разных компиляторов источником ошибки?

Если быть точным, может ли код, скомпилированный MinGW (gcc / g ++), вызвать функцию класса другого кода, скомпилированного VisualStudio?

1 Ответ

0 голосов
/ 16 февраля 2011

Компиляция не совсем проблема.Проблема в связывании .Если у вас есть интерфейсы C ++, то искажение имен определенно доставит вам неприятности.Каждый компилятор имеет свою собственную схему искажения имени.Жаль, что они должны были стандартизировать, может быть, это тоже в стандарте C ++ ...

Один из способов обойти эту проблему - создать небольшой API-оболочку C вокруг имеющейся у вас C ++ Dll (которая должна быть скомпилирована с MSVC) и использовать этот C API от Netbeans.(В конце концов, создавая некоторую оболочку C ++ только для заголовков для классов в dll c ++, чтобы она выглядела как оригинальный Api. Это два уровня переноса, но я не знаю, можно ли это решить более простым способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...