C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[16409] 코드기어 툴 및 제작된 프로그램 오류..
smleelms [smleelms] 4436 읽음    2009-07-24 01:00
현재 트윅된 xp sp3 버젼에 ATI Radeon HD 4850 512M 그래픽카드를 사용하고 있습니다.
해상도는 2048 * 1152에 듀얼모니터 사용중입니다.

그런데, 작업을 한참하다보면 C++ 빌더에서 컴파일된 프로그램이 초기 실행시에 "사용 가능한 저장소가 부족하여 이 명령을 처리할 수 없습니다"라고 오류를 내며 실행이 되지가 않습니다. 이때 브레이크시켜 call stack을 보면 GDI 오류에 걸려있습니다.

한번 이렇게 되면, 제가 C++ 빌더로 작업한 프로그램들은 거의 다 위의 오류로 실행이 되지를 않습니다.(아주 작은 프로그램들 빼구요.) 처음에 한 두번은 그려려니 했는데, 지금보니 위 오류가 발생한 다음에는 C++ 빌더 6.0 , 2007, 델파이 2007도 위 오류를 내면서 툴 자체가 실행이 되지를 않습니다.

그런데, VC++이나, 오피스나 다른 덩치큰 프로그램들은 잘 실행이 됩니다. 단 아래아한글의 경우 프로그램 화면이 깨지고, 화면이 갱신이 안되고 그럽니다. (응용프로그램 오류캡쳐화면 참고)

제가 짠 프로그램들만 그렇다면 뭔가 옵션 등을 잘못 설정했다라고 생각을 할텐데 (그렇다면 어떤 옵션이 저런 오류를 일으킬까요???), 툴들이 실행이 안되니 뭔가 연관성이 있을런지해서 제목을 저렇게 붙였습니다만..

왜 이런 현상이 생기는지, 어떻게 하면 이 현상을 해결할 수 있을런지 도움을 요청합니다.

P. S 1. 지금 일이 많이 바빠서, 재설치는 당분간 어려운관계로 새로 밀라고는 말아 주십시오. ^^;;
       2. 이리저리 찾아보니, 고해상도라서 그렇다는 글을 보기는 했습니다만... ^^;;
       3. 저런 오류가 없이도, 아래아 한글이나, MS 파워포인트는 화면이 간혹 깨지기는 했습니다만...

현재 오류가 나고있는 상태의 작업관리자를 추가하였습니다.. 계속 띄워놓고는 있는데.. 툴관련 GDI 리소스가 꽤 잡아먹고는 있는것 같습니다만... ^^;  흠.. 은근히 TChart, LMDTools 이넘들이 의심스러워지네요..
미노 [wyb330]   2009-07-24 01:57 X
윈도우에서 사용가능한 GDI 객체의 수를 늘려줄 수 있습니다.
레지스트리에서 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows에 있는
GDIProcessHandleQuota값을 늘어보세요.(기본값은 10000이고 최대값은 18000까지 가능할 겁니다.)
C++빌더는 모르겠지만 델파이는 GDI 리소스를 너무 많이 잡아먹는다는 느낌이 듭니다. 아마도 VCL이 좀 무거워서
그런 것 아닐까 생각합니다.
박지훈.임프 [cbuilder]   2009-07-24 02:04 X
아무래도, 델파이나 C++빌더의 두 얼굴중의 한 얼굴은 RAD 툴이기 때문에, 꼭 필요하지 않은 경우에도 자동으로 리소스를 쓰고 있는 부분이 적지는 않습니다. 하지만 통상적인 수준으로는 이런 EOutOfResources가 뜨는 것을 보기는 거의 불가능에 가깝습니다. 제대로 구현하기만 했다면, 폼 하나에 윈도우 컨트롤을 몇천개를 배치해도 볼 수 없으니까요. 하지만 이런 폼을 동적으로 수십개씩 계속 띄운다면... 똑같은 에러를 내면서 뻗을 수밖에 없습니다.

그런 극단적인 경우가 두렵다면... 뭐 최대한 폼이 아닌 코드 위주로 개발하면 되긴 하겠지만...
아주아주 특수한 경우가 아니라면 그런 노가다는 절대 하고 싶지 않군요. ^^
smleelms [smleelms]   2009-07-24 02:17 X
네. 미노님. 감사합니다. 일단 응급처방(?)을..^^
김태선 [cppbuilder]   2009-07-24 12:17 X
고해상도 화면 처리에서 오는 것이 아닌가 추측해 봅니다.
제 경험으로 봐서, 2048 과 같은 고해상도 화면에서 GDI 관련 작업을 하다 보니
말씀하신 저장소가 부족하다는 에러가 나는 것을 본 일이 있습니다.
그래서 해상도를 줄여 일단 해결 했는데,
정확한 원인은 모르겠네요.
핸들의 문제는 아닌것 같고, bmp 관련 메모리 할당 관련된 문제가 아니겠는가 추측해 볼 뿐입니다.

+ -

관련 글 리스트
16409 코드기어 툴 및 제작된 프로그램 오류.. smleelms 4436 2009/07/24
16410     Re:코드기어 툴 및 제작된 프로그램 오류.. 박지훈.임프 6509 2009/07/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.