|
//fwprintf(fp,L"%S\n", strTest); <- 이부분의 strTest가 AnsiString이라서 나는것이 아닌가요?
//AnsiString이 안들어 가는줄 알았는데. sprintf로 실험해보니 되네요?
빌더로 테스트 하니 wsprintf에도 AnsiString을 인자로 넣어도 잘되는걸 보니 제가 잘못 알고 있었나 보네요.
삭제는 delete[] 로 하셔야 메모리 누수가 안일어 나실거구요
김동석 님이 쓰신 글 :
: 제가 지금 유니코드형식으로 txt파일을 만드려고 하는데요.
:
: 만드는덴 성공했는데 메모리 에러가 나는거 같아 문의드립니다.
:
: setlocale(LC_ALL, "korea");
: FILE *fp;
: char Path[256];
: wchar_t* pStr;
: AnsiString strFilePath = "C:\Test";
: AnsiString strFileName = "test.txt";
: AnsiString strTest = "가나다abc123";
:
: sprintf(Path, "%s\\%s", strFilePath, strFileName);
: int strSize = MultiByteToWideChar(CP_ACP, 0, Path, -1 , NULL, NULL);
: pStr = new WCHAR(strSize);
: MultiByteToWideChar(CP_ACP,0,Path,strlen(Path)+1,pStr,strSize);
:
: fp = _wfopen(pStr, L"wb, ccs=UNICODE");
:
: fwprintf(fp,L"%S\n", strTest);
:
: fclose(fp);
:
: delete pStr; // <-----에러가 나서 이걸 추가했습니다. 허나 이것도 에러가 나는거 같습니다.
:
: 에러가 누를때 마다 나는것도 아니고 불규칙적으로 발생합니다..
:
: 제가 빠뜨린 부분이 있나요?
|