我有一个c ++ DLL,其中的函数嵌套在名称空间中。
我需要在java中访问这些函数..我不是一个java专家,但我确实知道它的一些基础知识。
我发现使用JNI访问C ++本机DLL中的方法的基本java代码,但我不知道如何访问嵌套在命名空间内的函数。
答案 0 :(得分:1)
您可能需要获取C ++函数的错位名称。您可以使用nm
在Unix上执行此操作,或在Windows上使用dumpbin /exports
。被破坏的名称将具有命名空间和函数名称,因此应该很容易找到(除非有几个具有相同名称的重载,您需要区分)。你确定这些函数是普通的C ++函数而不是类方法吗?
答案 1 :(得分:1)
帮自己一个忙:使用BridJ进行C ++互操作,它应该能够处理大多数命名空间问题: - )
(免责声明:我是BridJ的作者)
答案 2 :(得分:0)
“Jeremiah Willcock”的回答是对的,无论如何,你总是可以访问D.L.L.使用“受损名称”的函数,内部类或命名空间,它是一种奇怪的,脏的处理方式,但是,它的工作,即使有其他方法。
您可以进行一些测试,访问这些功能,然后再创建自己的包装器。