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结构,将两个Windows SHORTs映射到Java的16位整数short
。
JNA已经有了WinNT.HANDLE
的映射,所以就这样使用它。您可以选择使用JNA的DWORD
映射,但大多数时候我只是将它们直接映射到int
。
所以唯一剩下的就是指向HPCON
的指针,它没有直接映射。文档将此描述为指向HANDLE
的指针。你可以在这里使用HANDLEByReference
,或者将它扩展到你自己更狭窄的类。如果要创建HPCONByReference,这个mapping of HGLRCByReference就是一个很好的例子。