浏览一些代码时,我发现了对OpenPrinter()的调用.代码编译并正常工作.但是,我们正在传递一个HANDLE
而不是LPHANDLE
(在MSDN中指定).我发现在windef.h
以下声明中存在:
typedef HANDLE FAR *LPHANDLE;
LP代表什么?我应该使用LPHANDLE
,还是保留HANDLE
?
"LP"代表Long Pointer.
HANDLE!= LPHANDLE,就像DWORD!= DWORD*(或LPDWORD)
LP代表Long Pointer.在这种情况下,它是指向句柄的指针.
HANDLE h =(); LPHANDLE ph = &h;
您可以通过解除引用指针的方式使用它的方式:
HANDLE anotherh = *ph; or(*ph, ...);