java 调用dll之jna(3)

jna挺简单的,觉得比jnative简单一些,写一个接口直接继承Library就可以,不过还是遇到了输出参数的问题,无法得到C++的输出参数。

package jna;




import com.sun.jna.Native;
import com.sun.jna.ptr.ByteByReference;
import com.sun.jna.win32.StdCallLibrary;

public class DLLTEST {

	
	public interface PegRoute extends StdCallLibrary  {

		public int HCTInitEx(int Version, String pStrCurrentDirectory);
		
		public  long OpenDataStream (byte[] lpszDiskRoot);
		
		public  boolean WriteDataStream(long hDataStream, long offset, long opSize,
				byte[] Buffer);
		
		public  boolean ReadDataStream(long hDataStream, long offset, long opSize,ByteByReference Buffer);
		
		void CloseDataSream(long hDataStream);
		
		 int UpdateISOFileOfCDROMDriver(byte[] szLetter, byte[] szIsoFileName);
	}
	
	public static void main(String[] args) {
		PegRoute epen = (PegRoute) Native.loadLibrary("StreamData",
				PegRoute.class);
		if (epen != null) {
			System.out.println("DLL");
			long hDataStream = epen.OpenDataStream("J:".getBytes());
			byte[] by = "12345".getBytes();
			boolean b=epen.WriteDataStream( hDataStream, 0, 1024,
					by);
			
			System.out.println("1." + hDataStream);
			System.out.println("2." + b);
		
					}
	}
}


你可能感兴趣的:(java 调用dll之jna(3))