如果是这样,为什么一些Win32头文件使用它?“const LPVOID”是否等同于“void * const”?
例如:
BOOL APIENTRY VerQueryValueA(const LPVOID pBlock,
LPSTR lpSubBlock,
LPVOID * lplpBuffer,
PUINT puLen
);
多一点的阐述:如果API从不使用引用(或任何其他C++ - 只建),但只有指针和价值观,什么是具有const LPVOID
与LPCVOID
点。
我是否应该把每个地方看作const LPVOID
作为一些地方的真正意义是LPCVOID
? (因此可以安全地添加演员表)
进一步说明:看起来const LPVOID pBlock
在这种情况下确实是一个错误。 Windows 2008 SDK将其替换为LPCVOID
中的VerQueryValue
签名。葡萄酒在很久以前就这样做了。
我听说他们'定义'这些东西,所以它宁可是'const void *'。如果它们是typedef,那么确实会是'void * const'。 – 2009-11-27 12:26:27
@litb:不幸的是这些都是typedefs – EFraim 2009-11-27 12:28:22
@EFraim啊,我明白了。被诅咒的大写:) – 2009-11-27 12:35:24