|
fp = _wfopen(pStr, L"wb, ccs=UNICODE");
이렇게해도 fp는 Null값이 아니고 갑이 들어오고 파일도 생성이 됩니다..
fp = _wfopen(pStr, L"wb");
이렇게 해야 정상적인건가요?
delete[]로 변경하였습니다..
그래도 스레드 에러가 나네요..
메세지 박스
Access violation at address 0044C5A9 in module 'test.exe'. Read of Address C885CD54.
Thread Exit: Thread ID: 2980. Process LabelBlockPrint.exe (3644)
송신영 님이 쓰신 글 :
: Error가 안나는 경우가 이상한것 같군요...
:
: fp = _wfopen(pStr, L"wb, ccs=UNICODE");
:
: 에서 fp가 NULL일 겁니다.
: 왜일까요???
:
: delete 도 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; // <-----에러가 나서 이걸 추가했습니다. 허나 이것도 에러가 나는거 같습니다.
: :
: : 에러가 누를때 마다 나는것도 아니고 불규칙적으로 발생합니다..
: :
: : 제가 빠뜨린 부분이 있나요?
|