2015-06-09 6 views
-2

У меня есть сторонняя DLL на основе VC++, которую я хочу использовать в проекте Java вместе с его заголовком. Я понял, что BridJ - хорошее решение для этого, но заголовок настолько сложный, что JNAerator дросселирует его и просто замерзает на 100% CPU, наконец, спасаясь от OutOfMemoryError: Java heap space. Поэтому я должен сам написать привязки для необходимых вещей из заголовка.Что означает вещь между «классом» и именем класса в VC++?

Теперь я должен руководствоваться BridJ через аннотации. Для этого, я посмотрел на заголовок, и я нашел часть глядя, как, после чего я не понимаю:

namespace SomeNamespace { 
    class SomethingStrange TheClass { 
    public: 
     TheClass(); 
    // more 
    } 
} 

Итак, что я хочу знать: Что значит SomethingStrange здесь? Это другое дочернее пространство имен? И как правильно подключить это в BridJ?

+2

У вас есть определенное значение для 'SomethingStrange'? – Bathsheba

+0

Можете ли вы показать, что 'SomethingStrange' находится в фактическом коде? – NathanOliver

+0

Я не могу, потому что мне запрещено публиковать часть заголовка. – rabejens

ответ

2

При построении библиотеки DLL SomethingStrange сварится до __declspec(dllexport).

Когда используя, эта DLL будет сводиться к __declspec(dllimport).

Они позволяют объявление класса использовать как автору, так и пользователям конкретной DLL.

Что они «сводятся к» обычно контролируются флагами компилятора, управляемыми с помощью настроек проекта.

+0

Вы, кажется, правы, я просто игнорирую 'SomethingStrange' и, похоже, работает до сих пор. – rabejens

+0

Щелкните правой кнопкой мыши по нему и посмотрите, для чего он определен. – Bathsheba