本文介绍了LPHANDLE vs.HANDLE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在浏览一些代码时,我发现了对.该代码可以编译并正常工作.但是,我们传递的是 HANDLE
,而不是 LPHANDLE
(如MSDN中所指定).我发现在 windef.h
中存在以下声明:
While browsing some code I found a call to OpenPrinter(). The code compiles and works fine. But, we are passing a HANDLE
instead of LPHANDLE
(as specified in MSDN). I found out that in windef.h
the following declaration exists:
typedef HANDLE FAR *LPHANDLE;
LP代表什么?我应该使用 LPHANDLE
还是保留 HANDLE
?
What does LP stand for? Should I use a LPHANDLE
, or keep HANDLE
?
推荐答案
LP表示长指针.在这种情况下,它是指向句柄的指针.
LP stands for Long Pointer. It's a pointer to a handle in this case.
HANDLE h = <winapi function>();
LPHANDLE ph = &h;
您可以通过取消引用指针的方式使用与处理手柄相同的方式:
You can use it the same way you would a handle by dereferencing the pointer:
HANDLE anotherh = *ph;
or
<winapi function>(*ph, ...);
这篇关于LPHANDLE vs.HANDLE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!