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

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[741] 프로젝트가 DLL EXE 상태인지 구분해서 컴파일 하기.
김태선 [cppbuilder] 7707 읽음    2008-02-19 18:10
보통 DLL 프로젝트에는 외부에 자신의 함수나 클래스 인터페이스를 제공하기 위한
헤더가 필요한데, 이 헤더는 주로 DLL 프로젝트와 DLL을 이용하는 어플리케이션이에서
공히 include 해서 사용하게 됩니다.

그러면 현재 프로젝트가 소스차원에서 DLL인지 EXE인지 구분하는 방법은
그것을 구분할 수 있는 매크로를 하나 선언하는 방법이 주로 쓰입니다.

하지만 빌더는 DLL 인지 EXE지 자동으로 구분할 수 있도록 매크로를 이미 제공하고 있습니다.
현재 DLL 프로젝트인지 EXE 프로젝트 구분하는 방법은
빌더가 제공하는 다음의 선선언 매크로로 확인할 수 있습니다.

__DLL__

DLL 프로젝트에는 predefine 되어 있고
EXE 프로젝트에는 선언되어 있지 않습니다.

그러므로 다음과 같이 이 매크로를 일반적으로 활용할 수 있습니다.

#ifdef __DLL__
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif


몰라도 프로그램 짜는데 지장없지만 알면 눈꼽만큼 더 편리합니다.
김상면 [windyboy]   2008-02-21 06:58 X
눈꼽만큼이 아니라 경우에 따라 상당한 도움이 됩니다.

그럼

+ -

관련 글 리스트
741 프로젝트가 DLL EXE 상태인지 구분해서 컴파일 하기. 김태선 7707 2008/02/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.