|
AnsiString strFilePath = "C:\Test";
이 부분이 수정이 되었나요?
AnsiString strFilePath = "C:\\Test";
이렇게 해야 파일 경로가 정상적으로 설정됩니다.
브레이크를 걸어서 정확하게 Error가 발생하는 시점을 확인해보세요...
김동석 님이 쓰신 글 :
: 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; // <-----에러가 나서 이걸 추가했습니다. 허나 이것도 에러가 나는거 같습니다.
: : :
: : : 에러가 누를때 마다 나는것도 아니고 불규칙적으로 발생합니다..
: : :
: : : 제가 빠뜨린 부분이 있나요?
|