在浏览一些代码时,我发现了一个对 OpenPrinter() 的调用。代码编译并运行良好。但是,我们传递的是 HANDLE 而不是 LPHANDLE(在 MSDN 中指定)。我发现在 windef.h 中存在以下声明:

typedef HANDLE FAR          *LPHANDLE;

LP代表什么?我应该使用 LPHANDLE 还是保留 HANDLE

最佳答案

LP 代表长指针。在这种情况下,它是指向句柄的指针。

HANDLE h = <winapi function>();
LPHANDLE ph = &h;

您可以通过取消引用指针来像处理句柄一样使用它:
HANDLE anotherh = *ph;
or
<winapi function>(*ph, ...);

关于winapi - LPHANDLE 与 HANDL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/391649/

10-11 16:13