|
아래 글에 만해님께서 더 간단한 방법을 쓰셨고요,
저는 님의 소스가 무엇이 잘못되었는지를 보여드리죠.
현정환 님이 쓰신 글 :
: if(!FileExists("menu.tmp"))
: {
: FileCreate("menu.tmp");
// FileCreate는 파일을 새로 만들고 열어둡니다.
// 즉 새로 만들고 열어둔 파일 핸들을 리턴합니다.
// 당연히 그 파일을 닫고 다시 열어야 합니다.
FileClose(FileCreate("menu.tmp"));
: }
:
: TFileStream *File = new TFileStream("c:\\menu.tmp", fmOpenWrite);
:
: =====================
:
: 처음에 이렇게 썼는데 TFileStream 의 생성자에서 계속 익셉션이 떠서 (이미 만들어져
: 있을때는 에러가 안 뜹니다.) 혹시 File 생성하자 마자 열어서 그런가 싶어서 중간에
: Sleep 을 넣어봤는데 그대로더군요..
: 그래서 아예 FileCreate 를 프로그램이 Init 됐을 때의 소스로 옮겨서 멀찍히 떨어뜨려
: 놨는데 (시간 차이는 무쟈게 길게요..) 그래도 TFileStream 에서 에러가 떴습니다..
: 왜 이미 File 이 있을땐 문제가 없는데 새로 생성을 하면 문제가 될까요..
: 혹시 FileCreate 한 다음에 무언가 메모리를 막아줘야 하는게 있나요..?
:
: 익셉션 에러 메세지는 "파일을 열수 없습니다.." 이런 내용입니다.
:
: 고맙습니다.. 꾸벅..
:
|