2017-12-28 23 views
1

Visual Studio 2005에서 이전 버전의 C++ MFC 프로젝트를 최신 버전으로 전송하고 싶습니다. 이 프로젝트는 현재 Visual Studio에서 더 이상 지원되지 않는 멀티 바이트 문자 집합을 사용합니다. 따라서 첫 번째 단계는 프로젝트를 문자 집합과 독립적으로 만드는 것입니다. 직장 동료는 각 텍스트 주위에 매크로 _T()을두면이 작업을 수행 할 수 있다고 말했습니다. 불행히도 프로젝트에는 정적 텍스트가 많이 포함되어 있으며 매크로 추가에는 몇 주가 소요됩니다.멀티 바이트 문자 집합에서 이전 Visual Studio C++ 프로젝트 변환

다른 방법이 있습니까?

+0

이 질문은 분명하지 않습니다. "[A] 멀티 바이트 문자 집합은 더 이상 지원되지 않습니다."지원이 중단 된 특정 문자 집합이있는 것처럼 들리지만 일반적으로 MBCSes에 대한 지원을 요청하려고합니다. 또한 컴파일러 및 프레임 워크가 아닌 IDE의 지원에 대해 언급 한 이후 MBCS에 소스 파일 (또는 .vcproj 파일)이 저장되었는지 또는 실제로 코드 문제인지 여부가 궁금합니다. –

+2

MBCS는 MFC뿐만 아니라 핵심 운영 체제에서도 계속 지원됩니다. 깨진 문자 인코딩을 사용하는 것은 바람직하지 않을 수 있으며 20 년 동안 없었지만 여전히 지원됩니다. * "더 이상 지원되지 않습니다"*라는 의미를 분명히해야합니다. – IInspectable

+1

'_T()'매크로는 Windows 95와 Windows NT 모두 거의 동일한 코드베이스를 컴파일 할 수 있도록 고안되었습니다. 이것들을 추가하는 것은 약간 늦은 것 같습니다. –

답변

4

불행히도 다른 방법은 없습니다. 정규식 또는 sed 같은 텍스트 편집기를 사용하여 텍스트 편집을 자동화 할 수 있습니다.

하지만 개인적으로는 멀티 바이트 문자 관련 코드가 있지 않은지 수동으로 모든 코드를 확인하는 것을 선호 : 등을 대신 char_tcslen 대신 strlen, _TCHAR를 사용

고려해야 할

다른 변종 코드를 확인하는 것입니다 명시 적으로 widechars를 사용 wcslen 대신 strlen의, wchar_t 대신 char 대신 _T("some string")L"some string"

UPD가 : 또한 내가 몇 가지 발견 좋은 소식 "비추천 경고 [MBCS 지원 중단에 대한 MFC 지원]은 VC2017의 MFC에서 제거되었으며 앞으로도 계속해서 MBCS 지원을 제공 할 것입니다." (https://blogs.msdn.microsoft.com/vcblog/2013/07/08/mfc-support-for-mbcs-deprecated-in-visual-studio-2013/), 아마도 그대로 두어도됩니다.