SHGetFolderPath () 32 bit vs 64 bit
Pregunta
¿Qué sucede si uso SHGetFolderPath llamada api en un sistema de 32 bits con la identificación de la carpeta CSIDL_PROGRAM_FILESx86 en lugar de la identificación CSIDL_PROGRAM_FILES?
Teóricamente, CSIDL_PROGRAM_FILESx86 debe asignarse a C: \ program files (x86)
en un sistema de 64 bits, pero ¿a qué se asigna en un sistema de 32 bits donde no existe esta ruta?
Solución
Los diferentes escenarios se describen en este artículo en MSDN .
Desplácese hacia abajo hasta las observaciones, " FOLDERID_ProgramFiles "
OS Application KNOWNFOLDERID Default Path CSIDL Equivalent 32 bit 32 bit FOLDERID_ProgramFiles %SystemDrive%\Program Files CSIDL_PROGRAM_FILES 32 bit 32 bit FOLDERID_ProgramFilesX86 %SystemDrive%\Program Files CSIDL_PROGRAM_FILESX86 32 bit 32 bit FOLDERID_ProgramFilesX64 (undefined) Not applicable Not applicable
Resumen: apuntará a% SystemDrive% \ Archivos de programa
Otros consejos
Prueba esto:
GetEnvironmentVariable("ProgramW6432", szBuffer, nBufferSize);
YMMV
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow