public Pointer hScanner = new Pointer(10);
调用DLL时,,有个返回句柄的问题按上面声明,编译报如下的错误提示
怎么回事呢?E:\RaiReader\RaiReader\src\raireader\RaiReaderView.java:40: Pointer(long) 在 com.sun.jna.Pointer 中不是公共的;无法从外部软件包中对其进行访问
应该如何声明呢?谢谢
调用DLL时,,有个返回句柄的问题按上面声明,编译报如下的错误提示
怎么回事呢?E:\RaiReader\RaiReader\src\raireader\RaiReaderView.java:40: Pointer(long) 在 com.sun.jna.Pointer 中不是公共的;无法从外部软件包中对其进行访问
应该如何声明呢?谢谢
public Pointer hScanner = Pointer.createConstant(10);
public class Main {
public PointerByReference p_hScanner = new PointerByReference();
public Pointer hScanner = new Pointer(10);
public IntByReference p_hSocket = new IntByReference(10);看红色的部分 就不报错呢
我用的是NETBEANS 6.9 环境,,这么声明,就报主贴中的错误
何解呢?
刚试了下
这个申明是可以的,,程序正常,功能正常也
我就是纳闷
public Pointer hScanner = new Pointer(10); 这样的声明咋就不行呢?
Pointer(long) 这个构造方法不是public的
但是有……Pointer类里有
public static Pointer createConstant(参数)这个方法……
Pointer(long peer) {
this.peer = peer;
}前面没有任何控制符,也就是默认的friendly,其它package里的类是无法访问的。别人的可以访问,只能说明他写的达到了friendly的访问条件:就是在同一个包中调用。