Y si es así, ¿por qué algunos encabezados de Win32 lo usan?¿Es "const LPVOID" equivalente a "void * const"?
Por ejemplo:
BOOL APIENTRY VerQueryValueA(const LPVOID pBlock,
LPSTR lpSubBlock,
LPVOID * lplpBuffer,
PUINT puLen
);
Un poco más de elaboración: Si el API nunca utiliza referencias (o cualquier otro C++ - sólo se construye), pero sólo los punteros y valores, lo que es el punto de tener const LPVOID
vs. LPCVOID
.
¿Debo tratar cada lugar que veo const LPVOID
como un lugar donde el significado real es LPCVOID
? (y así es seguro agregar un molde)
Más aclaración: Parece que const LPVOID pBlock
fue un error en este caso. Windows 2008 SDK lo reemplaza a LPCVOID
en VerQueryValue
firma. Vino lo hizo hace bastante tiempo.
Escuché que '# define''editar esas cosas, por lo que sería' const void * '. Si son typedefs, sería 'void * const' de hecho. –
@litb: Desafortunadamente estos son typedefs – EFraim
@EFraim, ah veo. Mayúscula maldita :) –