部署java webservice 引用:http://676744379-qq-com.iteye.com/blog/759744
近期总结:
1、java调用C++ DLL
1)编写java类。例如 testdll.java,声明要使用的方法:
public class testdll{
static {
System.loadLibrary("translateec");//translateec.dll是自己生成的dll用来调用已存在的dll
}
public native static byte[] transetoc(byte[] sourceString);
}
2)javac testdll.java 生成.class文件
3)javah -classpath E:\testjava -jni com.package.testdll生成链接的.h文件
进入类所在的目录,“E:\testjava”为testdll的上层目录。com.package为包名。如果使用默认包名直接进入class文件所在目录。javah即可。这样生成 com_package_testdll.h
4)在vs2010中新建C++工程。将.h文件添加到工程中并且在.cpp中实现即调用现存的dll文件
将工程的属性设置输出为dll,在debug文件中找到dll,即为loadLibrary调用的dll
遇到问题:
调用返回中文乱码问题:调查C++和Java的编码方式。(貌似java中是gbk,C++中是utf-8,待考证)
将string类型换成byte[] ,并且传入之前在字符串末尾加“\0"。
将返回的值进行字符转换
到此在java中调用上述生成的dll成功。