ShgetfolderPath () 32 비트 대 64 비트
문제
내가 사용하면 어떻게됩니까? shgetfolderpath CSIDL_PROGRAM_FILES86 CSIDL_PROGRAM_FILES ID 대신 폴더 ID가있는 32 비트 시스템에서 API 호출?
이론적으로 CSIDL_PROGRAM_FILESX86은 맵핑해야합니다 C:\program files (x86)
64 비트 시스템에서는이 경로가 존재하지 않는 32 비트 시스템에서 무엇을 매핑합니까?
해결책
다양한 시나리오가 설명되어 있습니다 MSDN에 관한이 기사.
"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
요약 : %SystemDrive % Program 파일을 가리킬 것입니다.
다른 팁
이 시도:
GetEnvironmentVariable("ProgramW6432", szBuffer, nBufferSize);
ymmv
제휴하지 않습니다 StackOverflow