JNA 创建伪控制台声明



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

Windows API 声明如下:

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

HRESULT 是一个 32 位整数,因此您的函数声明将int CreatePseudoConsole()

至于参数,您可以扩展Structure以创建自己的 COORD 结构,将两个 Windows SHORT 映射到 Java 的 16 位整数short

JNA已经有WinNT.HANDLE的映射,所以只需使用它。 您可以选择使用 JNA 的DWORD映射,但大多数时候我只是将它们直接映射到int

所以唯一剩下的就是指向HPCON的指针,它没有直接映射。 文档将其描述为指向HANDLE的指针。 您可以在此处使用HANDLEByReference,也可以将其扩展到您自己的更窄类型的类。 HGLRCByReference的映射是一个很好的示例,如果你想创建一个HPCONByReference。

相关内容

最新更新