글자 나는 작업중인 작은 테스트 응용 프로그램을 컴파일하려고했습니다. (여기서 나는 약간의 종속성을 없애에 "멀티 스레드" "다중 스레드 DLL"에서 내 코드 생성을 설정코드 생성을 변경 한 후 특정 코드 줄을 코드 255로 끝냅니다.
는 다음 코드 줄 내 응용 프로그램 충돌 :
그래서 짧고 간단하게 유지하기
짧은 경로를 긴 경로로 변환하려고 할 때 충돌이 발생합니다. 같은 :
LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
GetLongPathNameA(tmp,tempFolder,MAX_PATH);
충돌은 특히 첫 번째 줄에서 발생 : 여기 그래서
LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
어떤 아이디어를 당신이 코드 생성 모드를 전환 할 때 갑자기 작동을 멈 춥니 이유는 무엇입니까? 감사!
편집 : 후
일부 코드 재 작성 내가 찾아 관리가
프로젝트를 빌드 할 때 경고가 있습니까? – Dialecticus
아니, 그렇지 않다. 이상한 이유로 코드 255로 끝난다. – zeta
왜'reinterpret_cast'가 필요한가요? 'getenv'의 결과는'char *'이며,'LPCSTR' (즉'const char *')로 자동 변환됩니다. 캐스트없이 오류가 발생하는 경우, 그들은 아마도주의가 필요할 것입니다. –