C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[455] [답변] HORONG/ 질문다발입니다..^^;; 질문 4종셋트/프포
이정욱 [ ] 5198 읽음    1998-07-15 13:12
안녕하세요.. 아이디 도둑 민성기 입니다.

// typedef int (*MYBEEP)(void);

위와같이 표시된 것은 함수 포인터를 뜻합니다.
C++에서 DLL을 임포트할때... 함수포인터를 만들어놓고
LoadLibrary()라는 API를 이용해서 매핑시키는 방법을
자주 쓰더군요...
델에서는

  Type
   TTest = function : Integer; stdcall;

이렇게 선언해 두시고...

var
  Test : TTest;

이렇게 하신 다음

var
  DLLHandle : THandle
begin
  DLLHandle := LoadLibrary('어쩌구저쩌구.dll');

이렇게 하시구..

  Test := GetProcAddress(DLLHandle, '임포트할 함수이름');

요렇게 해 주시면 됩니다.
물론 나중에 FreeLibrary() 해 주셔야 하구요...

그러나 대부분의 경우엔 아래와 같이 그냥 정적으로
임포트해서 써도 상관없는듯 합니다.

function Test : Integer; stdcall;
  external '어쩌구저쩌구.dll' name '임포트할 함수이름';


// typedef HBITMAP (__stdcall *IMPROC) (char *,bool);

두번째 질문은 함수의 매개변수가 문자열이고 반환값이
비트맵의 핸들인 함수의 함수 포인터를 뜻합니다.
위의 경우와 같구요...

HRGN이란 놈은 윈도우가 인식하고 있는 어떤 '영역'을
뜻합니다. 핸들과는 조금 다른 의미인데... 값은 LongWord
형이구.. 델파이에도 HRGN이란 값으로 이미 정의되어 있으니
그냥 사용하시면 됩니다.

일반적으로 CombineRgn, CreateEllipticRgn,
CreatePolyPolygonRgn 등을 이용해 희안한 모양의 윈도우를
만들때 사용하죠... 자세한 내용은 위의 함수들의 도움말을
살펴 보시구요...

DC란 윈도우의 표시장치를 나타내는 고도로 추상화된 객체
입니다. 화면 출력이건 프린터 출력이건... 뭔가 그림을 그리고
글씨를 쓰는 곳은 이 DC로 표현될 수 있죠...
우리가 이미지의 Canvas란 놈에 그림을 그리고 비트맵을 불러
오는 것도 결국 DC에 그림을 그리고 난리를 치는 겁니다.

일단 요정도로 답변을...
그럼...


+ -

관련 글 리스트
454 [질문] 질문다발입니다..^^;; 질문 4종셋트/프포 horong 5066 1998/07/14
455     [답변] HORONG/ 질문다발입니다..^^;; 질문 4종셋트/프포 이정욱 5198 1998/07/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.