我想要在Java项目中使用第三方基于VC ++的DLL及其标题。我发现BridJ是一个很好的解决方案,但是标题非常复杂,以至于JNAerator会对它进行扼流并冻结100%的CPU,最后用OutOfMemoryError: Java heap space
挽救。所以我必须自己从标题中为所需的东西编写绑定。
现在,我必须通过注释引导BridJ。为此,我查看了标题,我发现一个看起来像下面的部分,我不明白:
namespace SomeNamespace {
class SomethingStrange TheClass {
public:
TheClass();
// more
}
}
那么,我想知道的是:SomethingStrange
在这里意味着什么?这是另一个子命名空间吗?如何在BridJ中正确连接?
答案 0 :(得分:2)
构建DLL时,SomethingStrange
将归结为__declspec(dllexport)
。
当使用该DLL时,它将归结为__declspec(dllimport)
。
它们允许特定DLL的作者和用户使用类声明。
他们"归结为"通常由通过项目设置控制的编译器标志控制。