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
[15456] Include
유지상 [] 944 읽음    2002-02-12 22:51
제가 가지고 있는 Borland C++ Builder 5 에 무슨 문제가 있는 것 같습니다.
아무것도 안했는데도 에러메시지가 나옵니다.
모든 에러메시지는 Include에 있는 파일에서 나옵니다.
예를 들어 Include에 있는 어떤 특정파일의 내용을 보면 다음과 같습니다.,

#define CommDlg_OpenSave_GetFolderPathA(_hdlg, _psz, _cbmax) \

        (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz)

#define CommDlg_OpenSave_GetFolderPathW(_hdlg, _psz, _cbmax) \

        (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz)

#ifdef UNICODE

#define CommDlg_OpenSave_GetFolderPath  CommDlg_OpenSave_GetFolderPathW

#else

#define CommDlg_OpenSave_GetFolderPath  CommDlg_OpenSave_GetFolderPathA

#endif // !UNICODE



문제는 다름이 아니라 빈 줄 때문입니다.위의 코드를 보면 각 각 줄마다 빈 줄이 하나 씩 들어가 있습니다. 이것이 문제가 되는 이유는 predeprocessor에서는 빈 줄의 존재에 따라서 뜻을 다르게 해석할 수 있기 때문입니다.
예를 들면,
#define  A \
         2

는 #define A 2와 같은 뜻으로 해석됩니다.
#define  A \

         2
의 경우는 사이에 들어간 빈 줄 때문에 뜻이 다르게 해석되기 때문입니다.결국, 컴파일러가 잘못해석하게 되고 따라서 대해서 에러메시지들이 나올것입니다.

Include폴더에 있는 모든 파일이 이러한 번갈은 빈 줄을 가지고 있습니다.
그렇기에 제가 C++Builder로 새로운 에플리케이션을 마법사로 생성하고 후에 아무 수정도 가하지 않고,Run을 하더라도, Include폴더에 있는 파일에 대해서 엄청난 양의 에러메시지가 나오게 됩니다.
분명한 것은 Include폴더에 있는 모든 파일에서 빈 줄들을 제거하면,  더이상 이런 에러메시지가 나오지 않을 것이라는 것입니다. 그러나 Include에 있는 그 엄청난 양의 파일들에 대해서 일일이 다 빈줄을 제거한다는 것은 쉬운 일이 아닐 겁니다.
제 생각에는 Include폴더의 파일들을 어딘가에서 다시 다운로드받아야 할 것 같은데,
어디서 받을 수 있는지 아시는 분 계시나요?

+ -

관련 글 리스트
15456 Include 유지상 944 2002/02/12
15457     Re:Include 유지상 765 2002/02/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.