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 是一个很好的示例。
什么是 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 是一个很好的示例。