Java支持数据的位操作方面很糟糕。
如果linux上有Java程序要实现位操作功能,方便的办法有调用C编写的动态链接库。
IBM文档链接:
在 Linux 平台下使用 JNI
编写C++动态链接库遇到过的问题:
1. 有的外设使用Unicode
码而不是ASCII码:在常量字符串前添加“L";
2. 多种数据类型之间的转换,比如jByteArray, jbyte*, CString, char *:为了避免麻烦,我舍弃使用CString类型,全部都用char型数组配合memset(charr, '\0', sizeof(
charr)); memcpy(destarr, srcarr, num); 这样的函数解决;
3. 动态链接库无法直接运行,调试困难:可以在动态库里写printf语句,java程序调用动态库时会打印出来。
一个非常好的讲linux下编译、使用动态链接库的参考:
Shared libraries with GCC on Linux
本文介绍在Linux环境下如何利用C++动态链接库解决Java位操作难题,并分享了在编写动态链接库过程中遇到的一些常见问题及解决方案。
1万+

被折叠的 条评论
为什么被折叠?



