我是新手,但基本上就是我的情况:我几个月前开发了一个用Kinect运行的Java应用程序。现在我们需要将应用程序迁移到Kinect 2.为此,我必须在现有的Kinect 2 SDK上编写一个包装器。
我2天前开始阅读JNI教程,到目前为止,我可以将自己的C ++代码包装起来,但是当涉及到其他库时我不能,这就是我想要做的:
现在,在转到Kinect 2 SDK之前,我试图对我已经使用过的东西做一个小包装(OpenCV)。我编写了一个小类(只有学习目的),使用C ++编写的OpenCV代码初始化图像。当我尝试构建DLL时一切正常,但是当我尝试使用我的Java代码运行时,我得到“%1不是有效的Win32应用程序”。如果我评论每一行使用OpenCV代码,那么我没有错误,并且可以在我的包装器中运行其他没有OpenCV的函数。
我认为问题是一些不好的配置。
我正在使用的是:
答案 0 :(得分:1)
您的Java机器运行在32位或64位。
您的dll需要与java机器编译在同一台机器上:
在visual studio中检查您正在编译dll的平台。它应该与您在netbeans中使用的jre相匹配。