Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 jni小错误
manhunt





发贴: 1
积分: 0
于 2006-04-23 11:07 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
照着"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


话题树型展开
人气 标题 作者 字数 发贴时间
3046 jni小错误 manhunt 2133 2006-04-23 11:07
2458 Re:jni小错误 damondeng 146 2006-05-10 12:58
2440 Re:jni小错误 ranchgirl 202 2006-05-17 14:07

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   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