当前位置:  技术问答>java相关

接着请教jni的问题,使用vc时编译产生错误?!

    来源: 互联网  发布时间:2015-02-22

    本文导语:  用的是人民邮电出版社的《java网络高级编程》中的关于本地方法JNI的例子cNative.java 代码如下: //java源程序 /*源程序清单12-12*/ package test; public class cNative {    public native void testNative(int m);       //声明本地...

用的是人民邮电出版社的《java网络高级编程》中的关于本地方法JNI的例子cNative.java

代码如下:

//java源程序
/*源程序清单12-12*/

package test;
public class cNative
{
   public native void testNative(int m);       //声明本地方法

   static
   {
     System.loadLibrary("dllNative");
   }
   //装载动态连接库文件,设以后要生成的动态连接库文件名为dllNative.dll

   public cNative()
   {
   }

   public void printStr(int m)
   {
     String str="";
     for(int i=0;iGetMethodID(env,jc,"printStr","(I)V");
printf("VC call java method.n");
(*env)->CallObjectMethod(env,obj,jm,x);
}
并且拷贝了cNative.到其目录,并加到header files栏中

但是编译产生了错误,可我都是教程作的阿

出错信息如下:
Compiling...
dllNative.cpp
e:test3dllNativedllNative.cpp(11) : error C2819: type 'JNIEnv_' does not have an overloaded 

member 'operator ->'
        e:program filesmicrosoft visual studiovc98includejni.h(746) : see declaration of 

'JNIEnv_'
e:test3dllNativedllNative.cpp(11) : error C2227: left of '->GetObjectClass' must point to 

class/struct/union
e:test3dllNativedllNative.cpp(12) : error C2819: type 'JNIEnv_' does not have an overloaded 

member 'operator ->'
        e:program filesmicrosoft visual studiovc98includejni.h(746) : see declaration of 

'JNIEnv_'
e:test3dllNativedllNative.cpp(12) : error C2227: left of '->GetMethodID' must point to 

class/struct/union
e:test3dllNativedllNative.cpp(14) : error C2819: type 'JNIEnv_' does not have an overloaded 

member 'operator ->'
        e:program filesmicrosoft visual studiovc98includejni.h(746) : see declaration of 

'JNIEnv_'
e:test3dllNativedllNative.cpp(14) : error C2227: left of '->CallObjectMethod' must point to 

class/struct/union
e:test3dllNativedllNative.cpp(16) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

dllNative.dll - 7 error(s), 0 warning(s)

请指点

谢谢


|
写错了

jc=env->GetObjectClass(obj);
jm=env->GetMethodID(jc,"printStr","(I)V");
printf("VC call java method.n");
env->CallObjectMethod(obj,jm,x);


jc=env->GetObjectClass(obj);
jm=env->GetMethodID(jc,"printStr","(I)V");
printf("VC call java method.n");
env->CallObjectMethod(obj,jm,x);
 

 

|
JNIEXPORT void JNICALL Java_cNative_testNative(JNIEnv *env,jobject obj,jint m){
方法名字错了,区分大小写的

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下system函数调用shell命令后,怎样让主进程不等子进程返回,接着执行(在线)?
  • 如何判断SOCKET还是连接着的?
  • 接着拿
  • 没有装完想接着安装
  • 建立一个ftp数据连接并传送或接受完毕一些数据后,能否不关闭此数据连接,下次接着用?
  • 在线等待:如何把vector清空,再用该清空vector是,索引是从0开始,而不是紧接着上次清空是的索引?
  • 今天接着散分200
  • 在一个.sh脚本中打开一个新的终端执行另一个脚本,并接着并行执行原终端的语句
  • 关于jbuilder开发人员指南(接着散分)
  • 接着(1)看


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3