如何在CC++中调用Java

Python08

如何在CC++中调用Java,第1张

从java里调用c等其他语言的,是jni

从c等语言调用java的,要看你调用什么了,比如如果是java swing程序,可以用exe4j把它生成exe文件,用c去调用exe。如果是webservice,可以用soaptoolkit,是一个c++的库,可以访问WebService的,用的是soap。

public interface MyCDll extends Library {

MyCDll INSTANCE = (MyCDll)Native.loadLibrary("MyCDll", MyCDll.class)

public static class CFile extends Structure {

public ByteByReference _ptr = new ByteByReference()

public int _cnt

public ByteByReference _base = new ByteByReference()

public int _flag

public int _file

public int _charbuf

public int _bufsiz

public ByteByReference _tmpfname = new ByteByReference()

public static class ByReference extends CFile

implements Structure.ByReference{}

public static class ByValue extends CFile

implements Structure.ByValue{}

}

public CFile.ByReference fopen(byte[] filename,int len1, byte[] model,int len2)

public int fread(byte[] br, int size, int count, CFile f)

public int fclose(CFile br)

}

这是用java模拟的C的File类。java调用需要的写好的dll或so的动态库。动态库中的所有方法都可以用JNA来描述