728x90
MFC 간단한 파일 입출력 예제 (최신 Visual Studio 사용시)

 

이 포스트는 이전 블로그에서 이전된 포스트입니다.

 

먼저 파일 읽기, 쓰기 예제로 들어가기전에

최신버전의 Visual Studio를 쓰다보니 Unicode이어서 소스에 추가적인 작업이 조금 더해졌다.

(대부분의 문서가 다 멀티바이트 방식이라 동작을 안해서.. 직접 정리한다.)

따라서 이는 유니코드 기준이며 멀티바이트 사용시, 알아서 문자열 앞 L 혹은 TCHAR등을 보고 고려하여 변경하여야한다.

CString 과 char*의 변형은 아래 링크를 참고하면 됩니다.

MFC CString <-> char* 로 변환하기 / 유니코드(Unicode) 환경(최신 Visual Studio) :: 이야기하는 남자 (tistory.com)

 

MFC CString <-> char* 로 변환하기 / 유니코드(Unicode) 환경(최신 Visual Studio)

이 포스트는 이전 블로그에서 이전된 포스트입니다. 검색해 보면 다들 멀티바이트의 경우라 현재의 최신버전 visual studio에서는 오류를 출력한다. 따라서 최신 컴파일러를 사용해 유니코드 환경

talkout.tistory.com

 

반응형

 

파일 읽기 예제입니다.

CFile Rfile;
if (!Rfile.Open(L"test.txt", CFile::modeRead))
{
    MessageBox(L"파일을 열지 못했습니다.", L"경고!", MB_OK | MB_ICONHAND);
    return;
}
UINT FileLength = (UINT)Rfile.GetLength();
char* ps = new char[FileLength];
Rfile.Read(ps, FileLength);
Rfile.Close();
    
CString str;
int len = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, ps, -1, NULL, NULL);       
str = new TCHAR[len];
MultiByteToWideChar(CP_ACP, 0, ps, -1, (LPWSTR)(LPCWSTR)str, len);

delete ps;

//Testing
AfxMessageBox(str);

 

파일 쓰기 예제입니다.

CFile Wfile;
if (!Wfile.Open(L"test.txt", CFile::modeCreate | CFile::modeWrite))
{
    MessageBox(L"파일을 열지 못했습니다.", L"경고!", MB_OK | MB_ICONHAND);      
    return; 
}
    
char* pstr = new char[27];
char* ppstr = pstr;
for (int i = 0; i<26; i++)
    *ppstr++ = 'A' + i;
*ppstr = NULL;    // NULL 문자로 끝나게 한다.
Wfile.Write(pstr, 27);
Wfile.Close();
delete pstr;

 

 

.

728x90

+ Recent posts