Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JNA-如何将LPRAM指针转换为类对象? 我是JNJNA新手,对java和C++的混合有点困惑。在WNDPROC回调方法中,发送到回调的LPRAM必须用于检索DEV_BROADCAST_DEVICEINTERFACE类对象。这是我的代码: public static User32.WNDPROC WndProc = new User32.WNDPROC() { @Override public LRESULT callback(HWND hWnd, int uMSG, WPARAM uParam, LPARAM lParam) { User32.DEV_BROADCAST_DEVICEINTERFACE b = (User32.DEV_BROADCAST_DEVICEINTERFACE) lParam; if(b != null){ System.out.println("Device Name: " + b.dbcc_name.toString ()); System.out.println("New Volume GUID:" + b.dbcc_classguid.toString()); } }_Jna - Fatal编程技术网

JNA-如何将LPRAM指针转换为类对象? 我是JNJNA新手,对java和C++的混合有点困惑。在WNDPROC回调方法中,发送到回调的LPRAM必须用于检索DEV_BROADCAST_DEVICEINTERFACE类对象。这是我的代码: public static User32.WNDPROC WndProc = new User32.WNDPROC() { @Override public LRESULT callback(HWND hWnd, int uMSG, WPARAM uParam, LPARAM lParam) { User32.DEV_BROADCAST_DEVICEINTERFACE b = (User32.DEV_BROADCAST_DEVICEINTERFACE) lParam; if(b != null){ System.out.println("Device Name: " + b.dbcc_name.toString ()); System.out.println("New Volume GUID:" + b.dbcc_classguid.toString()); } }

JNA-如何将LPRAM指针转换为类对象? 我是JNJNA新手,对java和C++的混合有点困惑。在WNDPROC回调方法中,发送到回调的LPRAM必须用于检索DEV_BROADCAST_DEVICEINTERFACE类对象。这是我的代码: public static User32.WNDPROC WndProc = new User32.WNDPROC() { @Override public LRESULT callback(HWND hWnd, int uMSG, WPARAM uParam, LPARAM lParam) { User32.DEV_BROADCAST_DEVICEINTERFACE b = (User32.DEV_BROADCAST_DEVICEINTERFACE) lParam; if(b != null){ System.out.println("Device Name: " + b.dbcc_name.toString ()); System.out.println("New Volume GUID:" + b.dbcc_classguid.toString()); } },jna,Jna,当我试图将LPRAM转换为类对象时,编译器开始抱怨,原因很明显。如何实现这一点?您不必使用LPRAM;如果本机代码正在向您传递一个结构(或其他特定类型),那么您可以定义适当的方法签名,JNA将做正确的事情,将本机值转换为Java中有用的内容 public LRESULT callback(HWND hWnd, int uMSG, WPARAM uParam, User32.DEV_BROADCAST_DEVICEINTERFACE lParam);

当我试图将LPRAM转换为类对象时,编译器开始抱怨,原因很明显。如何实现这一点?

您不必使用LPRAM;如果本机代码正在向您传递一个结构(或其他特定类型),那么您可以定义适当的方法签名,JNA将做正确的事情,将本机值转换为Java中有用的内容

public LRESULT callback(HWND hWnd, int uMSG, WPARAM uParam, User32.DEV_BROADCAST_DEVICEINTERFACE lParam);