Доступ к собственной C ++ DLL (с ​​пространствами имен) через JAVA - PullRequest
0 голосов
/ 07 марта 2011

У меня есть c ++ DLL, где функции вложены в пространства имен.

Мне нужно получить доступ к этим функциям в Java. Я не большой специалист по Java, но я знаю немного о его основах..

Я нашел базовые java-коды для доступа к методам в собственной C ++ DLL с помощью JNI, но я не уверен, как получить доступ к функциям, вложенным в пространства имен.

Ответы [ 3 ]

1 голос
/ 14 апреля 2011

Сделайте себе одолжение: используйте BridJ для взаимодействия C ++, он должен быть в состоянии справиться с большинством проблем с пространством имен: -)

(отказ от ответственности: я автор BridJ)

1 голос
/ 07 марта 2011

Возможно, вам потребуется получить искаженные имена функций C ++.Вы можете использовать nm для этого в Unix или dumpbin /exports в Windows.Искаженное имя будет иметь пространство имен и имя функции, поэтому его должно быть легко найти (если нет нескольких перегрузок с одним и тем же именем, которые нужно различать).Вы уверены, что эти функции являются обычными функциями C ++, а не методами класса?

0 голосов
/ 09 июня 2011

Правильный ответ «Джеремия Уиллкок», в любом случае, вы всегда можете получить доступ к D.L.L. функции внутри классов или пространств имен, использующие «искаженные имена», это странный, грязный способ делать вещи, но он работает, даже если есть другие способы.

Вы можете выполнить несколько тестов, получить доступ к этим функциям и позже создать свою собственную оболочку.

...