У меня есть сторонняя библиотека на основе VC ++, которую я хочу использовать в проекте Java, вместе с его заголовком. Я понял, что BridJ — хорошее решение для этого, но заголовок настолько сложен, что JNAerator захлебывается им и просто зависает на 100% CPU, наконец выручая OutOfMemoryError: Java heap space
, Поэтому я должен написать привязки для необходимых вещей из шапки самостоятельно.
Теперь я должен вести BridJ через аннотации. Для этого я посмотрел на заголовок и нашел часть, похожую на следующую, которую я не понимаю:
namespace SomeNamespace {
class SomethingStrange TheClass {
public:
TheClass();
// more
}
}
Итак, что я хочу знать: что делает SomethingStrange
значит здесь? Это другое дочернее пространство имен? И как мне правильно подключить это в BridJ?
При создании DLL, SomethingStrange
будет сводиться к __declspec(dllexport)
,
когда с помощью эта DLL, она будет сводиться к __declspec(dllimport)
,
Они позволяют использовать объявление класса как автору, так и пользователям конкретной библиотеки DLL.
То, к чему они «сводятся», обычно контролируется флагами компилятора, управляемыми через настройки проекта.