|
강요찬 님이 쓰신 글 :
: 이 버그인 줄은 모르지만 일단은 고친 뒤 제 컴에서는 에러가 나지 않고 있습니다.
: 폼을 생성한 뒤 Auto-create forms에 그대로 두었더군요.
: 해당 폼을 Available forms로 옮기고 난 뒤 실행하니까 에러를 띄우지 않네요.
: 여하튼 요 며칠 정말 고생하고 있습니다.
: 참으로 허망한 에러군요.
: 이전에 한 번 이 것 때문에 고생한 적도 있으면서...
: 아래 질문은 그냥 두겠습니다.
: 그럴 분은 안 계시겠지만 저와 같이 어리석은 실수를 예방하는 의미로 말입니다.
:
: ***************************************************************************************
:
: 고수님들의 도움을 바랍니다.
:
: 실행시킬 때 이런 에러메시지가 뜹니다.
: 소스 중에 임시파일을 만드는 부분이 있습니다.
:
: 에러메시지 : Too many open files.You may need to increase MAXFILEHANDLE limit in
: IDAPI configuration.
: FILE : c:\temp_file.mdx
:
: 특이한 점 :
: 1. 수개월동안 불과 며칠 전까지 전혀 이상이 없었습니다.
: 2. C++Builder를 실행시킨 상태에서 빌더 창을 Minimize 해 놓고 탐색기에서 실행파일을 실행시
: 키면 에러메시지가 나타나지 않고 잘 돌아갑니다.
: 3. C++Builder 의 통합환경 빌더 실행을 완전히 끝내고 탐색기에서 실행파일을 실행시키면 에러
: 메시지가 나타납니다.
:
: 요 며칠 씨빌더에게 참패를 당하고 있습니다.
: 정말 환장하겠습니다.
: 도대체 저의 능력으로는 해결할 방법이 없군요.
:
: 마지막 방법은 이렇습니다.
: 고수님들의 조언으로 해결되지 않는다면 할 수 없이 하드 포맷 다시 잡고 빌더 다시 깔고...
: 그래도 해결 안 된다면 .... 어떻게 해야 할까요?
: 포기를 할 수도 없고...
:
:
임펠리테리입니다.
위쪽에 쓰신 것이, 아마도 문제를 해결하신 후에 다시 써주신 내용인 듯 하군요. 해결이 잘 된듯하니 별 소용이 없겠습니다만... 문제는 리소스를 너무 많이 사용한 것입니다. VCL은 눈에 보이는(visual) 프로그래밍 인터페이스를 이용하여 프로그래밍을 하는 만큼, 빌더나 델파이를 오랫동안 아무 생각없이 사용하다보면 함부로 리소스(메모리, 윈도우 핸들, 파일 핸들 등등)을 낭비하게 되는 나쁜 버릇이 들기 쉽습니다. 말씀하신 경우는, 폼들을 모두 auto-create 로 설정해놓은 바람에 모든 폼들이 정적으로 생성되어 윈도우 핸들이 다 소모되어 남은 리소스가 0이 되어버린 때문에 발생한 문제입니다. 폼이 좀 많아진다고 생각되기 시작하면 체계적으로 자주 사용되는 폼과 그렇지 않은 폼들을 구분하여 정적으로 생성할 것인지 혹은 폼이 필요할 때만 동적으로 생성할 것인지 등에 대한 설계를 고려해야 합니다.
그럼 참고하시길...
|