JNA CreatePseudoConsole 声明

JNA CreatePseudoConsole declaration

什么是 CreatePseudoConsole 函数的正确 JNA 声明?

Windows API 声明如下:

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

HRESULT is a 32-bit integer,所以你的函数声明应该是 int CreatePseudoConsole().

至于参数,您可以扩展 Structure 以创建自己的 COORD structure, mapping the two Windows SHORT 到 Java 的 16 位整数 short

JNA 已经有 WinNT.HANDLE, so just use that. You can optionally use JNA's DWORD 映射的映射,但大多数时候我只是将它们直接映射到 int.

所以只剩下指向HPCON的指针,没有直接映射。文档将其描述为指向 HANDLE 的指针。如果要创建 HPCONByReference,可以使用 HANDLEByReference here, or extend that to your own more narrowly typed class. This mapping of HGLRCByReference 是一个很好的示例。