什么是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。