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
[601] shlobj.h를 vcl.h와 같이 include하는 2가지 방법.
김태선 [jsdkts] 10432 읽음    2006-05-01 22:44
이건 Q&A에 이미 방법이 나와 있는데, 혹 모르시거나 필요하신 분을 위해 Q&A에 있는거 발췌해서 올립니다.
shlobj.h 은 셀컨트롤을 위해 include 해야할 일이 많죠. 하지만 vcl.h 와
같이 있으면 에러로 컴파일이 되지 않습니다.

#include <shlobj.h> 는
#include <vcl.h> 와 같이 컴파일을 할수 없습니다.
shlobj.h 에 있는 내용이 vcl.h의 내용과 중복되기 때문입니다.
그래서 유닛을 별도로 빼서 shlobj.h 만 include 해서 셀관련 기능을 코딩할 수 있으나
이왕이면 vcl.h 과 같이 컴파일되면 좋겠죠.

이를 해결하는 첫번째 방법

#ifndef NO_WIN32_LEAN_AND_MEAN
#define NO_WIN32_LEAN_AND_MEAN
#endif
#include <shlobj.h>
#include <vcl.h>
#pragma hdrstop


이를 해결하는 두번째 방법

#include <vcl.h>
#define FVSHOWINFO xxFVSHOWINFOxx
#define FOLDERSETTINGS xxFOLDERSETTINGSxx
#define DESKBANDINFO xxDESKBANDINFOxx
#define SHELLFLAGSTATE xxSHELLFLAGSTATExx
#include <shlobj.h>
#pragma hdrstop


두번째 방법은 헤더파일중에
#define NO_WIN32_LEAN_AND_MEAN
가 있으면 문제가 생기는 경우에 사용할 수 있습니다.

두번째 방법을 잘 보면, 헤더파일 include 시 중복선언(Multiple declaration)을
어떻게 피해가는지 보여주는 트릭을 알수 있습니다.


그럼...
구대원 [deckerd]   2006-05-03 11:03 X
NO_WIN32_LEAN_AND_MEAN 를 project option  에 condition 인가 하는것에 넣는 방법이 더 있습니다.
김태선 [jsdkts]   2006-05-05 12:56 X
^..^;

+ -

관련 글 리스트
601 shlobj.h를 vcl.h와 같이 include하는 2가지 방법. 김태선 10432 2006/05/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.