0
나는이 코드를 msn (Obtaining a file name from a file handle)에 사용하여 findfirstchangenotification에서 가져온 파일 핸들의 파일 이름을 가져 왔습니다."파일 핸들에서 파일 이름"의 잘못된 인코딩
하지만 이제 문제는 결과 문자열의 인코딩이 어떻게 든 잘못되었다는 것입니다. 모든 문자 대신 한 문자 만 표시됩니다 (일반적으로 물음표).
그래서 내 코드는 GetMappedFileName
을 호출하고 물음표가 표시됩니다.
if (GetMappedFileName (GetCurrentProcess(),
pMem,
pszFilename,
MAX_PATH))
왜?
단일 문자 만 보는 것은 wchar_t * 문자열을 char * 문자열로 캐스팅하는 확실한 신호입니다. 그런 종류의 캐스트는 컴파일러를 닫아서 잘못하고 있다는 것을 알려주려고합니다. 캐스트하지 마십시오. 유니 코드를 일관되게 사용하십시오. –
이것은 아주 좋은 질문입니다. – bmargulies