2015-06-09 21 views
-2

我有一个第三方基于VC++的DLL,我想在Java项目中使用它的头文件。我发现BridJ是一个很好的解决方案,但是头文件非常复杂,以至于JNAerator扼杀了它,并以100%的CPU冻结,最后用OutOfMemoryError: Java heap space进行了救援。所以我必须自己从头文件中为需要的东西编写绑定。“class”和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

相关问题