我有一个基于第三方vc++的DLL,我想在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的作者和用户都使用类声明。
它们"归结为"的内容通常由通过项目设置控制的编译器标志控制。