Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Java SE 综合讨论区
打印话题 寄给朋友 订阅主题 |
作者 | jni小错误 |
manhunt
发贴: 1 积分: 0 |
于 2006-04-23 11:07
照着"Java进阶-JNI使用技巧点滴(二)"中的例子编了个很小的程序,就是在java中定义一个字符串利用c显示出来。 其中一个c.cpp 用到自定义函数convertUniToANSI,用cl命令编译成dll文件时出现以下错误: c.cpp ( 8 ) : error c2065: 'convertUniToANSI' : undeclared identifier c.cpp ( 20 ) : error c2373: 'convertUniToANSI': redefinition; defferent type modifiers ===================================== 以下为代码: c语言主程序c.cpp #include <stdio.h> #include "connection.h" #include "windows.h" JNIEXPORT void JNICALL Java_connection_HelloWorld (JNIEnv*env, jclass jobject,jstring text) { char* sp; convertUniToANSI(env,text,sp); printf("sp= %s\n",sp); } JNIEXPORT jstring JNICALL Java_connection_cToJava (JNIEnv *env,jclass obj) { jstring jstr; char str[]="fuck this world!\n"; jstr=env->NewStringUTF(str); return jstr; } void convertUniToANSI(JNIEnv *env,jstring oldStr,char* newStr) { int desc_len=256*2; int len; if(oldStr==NULL||newStr==NULL) return ; wchar_t *w_buffer = new wchar_t[256]; wcscpy(w_buffer,env->GetStringChars(oldStr,0)); env->ReleaseStringChars(oldStr,w_buffer); len = WideCharToMultiByte(CP_ACP,0,w_buffer,1024,newStr,desc_len,NULL,NULL); if(len>0 && len<desc_len) { newStr[len]='\0'; } delete[] w_buffer; } ===================================== 连接程序:connection.java public class connection { static { System.loadLibrary( "c" ); } public native static void HelloWorld(String text); //public native static String cToJava(); } ==================================== 测试程序:test.java public class test { public static void main(String[] args) { connection b=new connection(); String text="fthe world!"; b.HelloWorld(text); //System.out.println(b.cToJava()); } } test.rar (1.31k)
manhunt edited on 2006-04-23 11:09
请求JAVA学习方向????? |
话题树型展开 |
人气 | 标题 | 作者 | 字数 | 发贴时间 |
3090 | jni小错误 | manhunt | 2133 | 2006-04-23 11:07 |
2495 | Re:jni小错误 | damondeng | 146 | 2006-05-10 12:58 |
2480 | Re:jni小错误 | ranchgirl | 202 | 2006-05-17 14:07 |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |