【发布时间】:2014-07-28 16:58:21
【问题描述】:
我是新手,但基本上我的情况是这样的:几个月前,我用 Java 开发了一个使用 Kinect 运行的应用程序。现在我们需要将应用程序迁移到 Kinect 2。为此,我必须在现有的 Kinect 2 SDK 上编写一个包装器。
我 2 天前开始阅读 JNI 教程,到目前为止,我可以包装自己的 C++ 代码,但是当涉及到其他库时,我不能,这就是我正在尝试做的事情:
现在,在使用 Kinect 2 SDK 之前,我正在尝试对我已经使用过的东西(OpenCV)做一个小包装。我编写了一个使用 C++ 编写的 OpenCV 代码初始化图像的小类(仅用于学习目的)。当我尝试构建 DLL 时,一切正常,但是当我尝试使用我的 Java 代码运行时,我得到“%1 Not a Valid Win32 Application”。如果我注释使用 OpenCV 代码的每一行,那么我不会收到任何错误,并且可以运行我的包装器中没有 OpenCV 的其他函数。
我想问题是一些错误的配置。
我使用的是:
- Netbeans (Java)
- Visual Studio 2013 (C++)
【问题讨论】:
-
出现此类错误的另一个原因是您在作为 32 位应用程序运行时加载了 64 位模块。
-
我想了解更多关于您正在编译什么、如何编译以及 java 如何与之交互的信息。您如何称呼您的 Java 应用程序? Java 是如何加载和使用原生函数的?
-
听起来是 JavaCPP 预设的完美候选者:github.com/bytedeco/javacpp-presets/wiki/Create-New-Presets
标签: java c++ java-native-interface wrapper