lpvoid在msdn中的描述为:
LPVOID Generic pointer type, equivalent to (void *). Should be used instead of LPSTR.
可以理解为 void *
但是在使用的时候经常感到疑惑。
比如创建线程 传值的时候 会碰到这个类型
HANDLE CreateThread (
SEC_ATTRS SecurityAttributes,
ULONG StackSize,
SEC_THREAD_START StartFunction,
PVOID ThreadParameter,
ULONG CreationFlags,
PULONG ThreadId
);
还有 读取内存的时候
BOOL ReadProcessMemory( HANDLE hProcess, // handle to the process
LPCVOID lpBaseAddress, // base of memory area
LPVOID lpBuffer, // data buffer
SIZE_T nSize, // number of bytes to read
SIZE_T * lpNumberOfBytesRead // number of bytes read);
有时候需要将类型转换成
int m = 10;
(lpvoid)&m;
但是有时候 不需要取地址符号
int m = 10;</

本文探讨了lpvoid在Win32 API中作为参数类型的应用,特别是在线程创建和内存读取场景下。当传入局部变量时,通常需要取地址以避免内存释放问题;而在从函数内部读取数据时,则需使用取地址形式来获取变量的内存地址。
最低0.47元/天 解锁文章
1024

被折叠的 条评论
为什么被折叠?



