JNA如何将wparam转换为类

时间:2018-11-25 13:49:47

标签: java pointers callback jna user32

我尝试将c ++程序重写为java jna的东西。我使用User32库和一些客户端库。

我对将值从WPARAM(这是一个指针)转换为某种结构有疑问。就我而言,对我的班级来说。 这是Java + JNA中的回调函数

public WinDef.LRESULT callback(WinDef.HWND hwnd, int uMsg, WinDef.WPARAM wParam, WinDef.LPARAM lParam) {
    if(uMsg == WinUser.WM_CREATE){
        System.out.println("CREATE");
    }else if (uMsg == WM_COMMLIBX) {
        System.out.println("New WM_COMMLIBX");

    } else {
        return User32.INSTANCE.DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
    return new WinDef.LRESULT(0);
}

这是我的示例类:

public class CallbackData {
char[] tagname = new char[129];
char[] source= new char[129];
char[] value= new char[129];
char quality;
}

现在,如果uMsg等于WM_COMMLIBX,我想读取一个结构。 我用C ++编写程序,结构是:

typedef struct {
char tagname[129];
char source[129];
char value[129];
char quality;
}NotificationCallbackData;

我是用这种方式做到的:

NotificationCallbackData *pData = (NotificationCallbackData *)wParam;
pData->tagname;

这有效。 有人可以在JNA的帮助下帮助我在Java中做到这一点吗?

0 个答案:

没有答案