Объявление JNA CreatePseudoConsole - PullRequest
0 голосов
/ 26 марта 2019

Что такое правильное объявление JNA для функции CreatePseudoConsole?

Объявление Windows API выглядит следующим образом:

HRESULT WINAPI CreatePseudoConsole(
    _In_ COORD size,
    _In_ HANDLE hInput,
    _In_ HANDLE hOutput,
    _In_ DWORD dwFlags,
    _Out_ HPCON* phPC
);

1 Ответ

2 голосов
/ 26 марта 2019

HRESULT - это 32-разрядное целое число , поэтому объявление вашей функции будет int CreatePseudoConsole().

Что касается аргументов, вы можете расширить Structure, чтобы создать свой собственный COORD структура, отображающая две Windows SHORT s в 16-разрядное целое число Java short.

JNA уже имеет отображение для WinNT.HANDLEтак что просто используйте это.При желании вы можете использовать отображение JNA DWORD, но большую часть времени я просто сопоставляю их непосредственно с int.

Так что остается только указатель на HPCON, который не отображается напрямую.Документы описывают это как указатель на HANDLE.Вы можете использовать HANDLEByReference здесь или расширить его на свой более узко типизированный класс.Это отображение HGLRCByReference является хорошим примером для использования, если вы хотите создать HPCONByReference.

...