社区
Java SE
帖子详情
java调用c的dll出现的中文传递问题
bergkcamp
2004-01-05 04:41:14
我用java通过jni调用c的dll,如何正确的从java把中文传到c?
...全文
53
2
打赏
收藏
java调用c的dll出现的中文传递问题
我用java通过jni调用c的dll,如何正确的从java把中文传到c?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bergkcamp
2004-01-09
打赏
举报
回复
自己搞定了
bergkcamp
2004-01-05
打赏
举报
回复
geweiqingbangmang a
Jna
调用
dll
实例
jna
调用
dll
实例,包含jna.jar包,有详细的
调用
过程注释,包括
调用
时的
中文
乱码处理。本实例还提供了32位和64位的
dll
试用文件。
JNI技术手册 c/c++
调用
java
目录 I. 目录 1 II.
java
c/cpp互相
调用
实例(姊妹篇之一)——
java
调用
c/cpp 4 一 先制作一个系统中有的
DLL
文件(cpp给出的sdk接口) 4 二 JNI 7 1、 编写
java
文件 7 2、 生成.h头文件 8 3、 用c/cpp实现这个头文件 9 三 测试 10 四 最后补充 11 III.
java
c/cpp互相
调用
实例(姊妹篇之二)——c/cpp
调用
java
11 一、 编写
java
代码 12 二、 编译
java
代码 12 三、 编写 C/C++ 代码 13 四、 运行exe 18 IV.
Java
JNI 编程进阶 18 一、 解决性能
问题
18 二、 解决本机平台接口
调用
问题
19 三、 嵌入式开发应用(JNI小例子) 20 1、 新增一个基础类 22 2、 定义新类继承基础类 23 3、 编写
调用
类 23 4、 新增两个本地方法 24 5、 修改 RunMain 类 25 6、 新增一个方法处理
java
对象 26 7、 新增一个方法处理数组 29 8、 改写RunMain 32 四、 参考资料: 33 V. Eclipse+CDT+MinGW 进行
JAVA
调用
C/C++ 34 一、 安装eclipse3.2。 34 二、 安装MinGW。 34 1、 下载MinGW 34 2、 安装 34 3、 安装版本 34 4、 选择安装的编译器 34 5、 选择安装路径,下一步 35 6、 等待下载软件 35 三、 MinGW的环境变量设置 35 1、 设置Path 35 2、 设置C_INCLUDE_PATH 35 3、 设置CPLUS_INCLUDE_PATH 35 四、 做一个小技巧修改 35 五、 安装CDT插件 36 1、 下载CDT插件 36 2、 安装CDT插件 36 六、 简单介绍CDT的使用吧 36 1、 新建一个C++项目 36 2、 输入New Project名字 36 3、 给项目新建一个的源文件 36 4、 接着
出现
文件添加的窗口,在File Name栏里面写上文件名 36 5、 编辑hello.cpp 37 6、 添加一个编译命令 37 七、 让我们开始进入真正的工作吧! 38 The
Java
side 38 1、 建立
Java
工程
Java
Hello,编写
java
类 38 2、 用命令生成头文件 38 The C side-Compiling the Library 40 1、 建立标准C工程Cpro,并生成
dll
文件 40 1) 将生成的头文件test_Hello.h拷贝到C工程Cpro下 40 2) 编写C类Hello.c,内容为: 40 3) 在C工程Cpro下建立hello.def文件(用于定义导出的函数),内容为: 40 4) 在C工程Cpro下建立makefile文件,内容为: 40 5) Make Targets 40 6) Make Targets视图下双击step1,在C工程Cpro下生成hello.o 文件。 41 7) Make Targets视图下双击step1,在C工程Cpro下生成hello.
dll
文件。 41 2、
JAVA
调用
DLL
41 1) 将hello.
dll
拷贝到
Java
工程
Java
Hello下。 41 2) 运行Hello.
java
,则可以看到输出结果: 41 1) 将Hello.c改为Hello.cpp 41 2) 将makefile内容改为: 41 3) 其他的几乎都不用改变也可以。 42 评论: 42 VI. c++如何
调用
java
程序 51 DemoMain.
java
内容如: 51 采用vc6++ IDE,采用JNI技术实现。 51 1、 编译时 51 2、 运行时 51 程序的关键在 53 VII. JNI 53 一、 定义 53 二、 设计目的 54 三、 书写步骤 54 1) 编写
java
程序:这里以HelloWorld为例。 54 2) 编译 55 3) 生成扩展名为h的头文件 55 4) 编写本地方法实现和由
java
h命令生成的头文件里面声明的方法名相同的方法。 56 5) 生成动态库 56 6) 运行程序
java
HelloWorld就ok. 56 四、
调用
中考虑的
问题
56 1)
java
和c是如何互通的? 57 2) 如何将
java
传入的String参数转换为c的char*,然后使用? 57 3) 将c中获取的一个char*的buffer
传递
给
java
? 57 4) 不知道占用多少空间的buffer,如何
传递
出去呢? 58 五、 对
JAVA
传入数据的处理 58 1) 如果传入的是bytearray的话,作如下处理得到buffer: 58 VIII. C/C++
调用
JAVA
类 58 一、 加载虚拟机: 59 二、 获取指定对象的类定义: 59 三、 获取要
调用
的方法: 59 四、
调用
JAVA
类方法: 60 五、 获得类属性的定义: 60 六、 数组处理: 60 七、 异常: 60 八、 多线程
调用
61
Java
代码 61 命令行运行:
java
p -s -p MyTest ,输出: 62 C代码test
java
.c: 62 编译: 65 运行结果: 65
Windows进程常用
DLL
模块注入技术
进程调试级注入,涉及调试器相关功能
调用
知识点
dll
模块重定位内存注入,模拟操作系统加载PE文件方式,直接将
dll
文件内存数据写入目标进程并执行。 导入表注入,涉及PE相关知识点,增加区段,移动导入表,增加导入...
java
用JNA
调用
dll
实例,包含各种参数
调用
实例中演示了各种参数形式的
DLL
函数
调用
,如:基本数据类型、基本数据类型的指针和引用、结构体、结构体的指针和引用、函数指针和回调函数、字符串指针、输入数组、输出数组等,非常实用。
JNA(
java
和vc++之间
调用
)
java
使用JNA
调用
VC++
dll
的
java
代码和VC++
dll
代码;
传递
和返回普通类型参数,
传递
结构体类型指针,使用回调函数实现VC++
调用
java
函数
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章