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
[74675] 혹시 이렇게 하는 방법은?
단단한돌 [heaven2] 3389 읽음    2017-11-23 20:50
GuardnetThread.cpp에서 UnitMain.h을 Include하는 것은
MainForm의 포인터인 frmMain 변수를 받아오기 위함입니다. MainForm에 접근하기 위해서..

/////////////////////////////////////
// UnitMain.h
#include 
..
class TfrmMain : public TForm
{
...
};
extern PACKAGE TfrmMain *frmMain;   // 이 포인터를 받아오기 위해서임. 


UnitMain.h 파일을 include하지 않고, TfrmMain *frmMain을 Reference할 수 있는 방법이 있을까요?


단단한돌 님이 쓰신 글 :
: Component간 Conflict가 발생해서 며칠째 개고생 중입니다.
: 파일들을 따라가 보니 하나의 헤더 파일을 제외하면 성공할 것 같은데요..
:
:
/////////////////////////////////////
: // UnitMain.h
: #include 
: #include "SBSimpleSftp.hpp"   // GuardnetThread.cpp에서 include에서 제외해하하는 파일
: ..
: 
: /////////////////////////////////////
: // GuardnetThread.cpp 
: #include "GuardnetThread.h"
: #include "UnitMain.h"               // UnitMain.h을 include함. => Conflict 발생..  
: #include 		// Routing 정보
: #pragma comment(lib, "iphlpapi.lib")

:
: GuardnetThread.cpp에서 UnitMain.h 파일을 include하는데,
: UnitMain.h파일의 "SBSimpleSftp.hpp" 파일과 GuardnetThread.cpp에서 include한
: <iphlpapi.h>파일이 Conflict가 발생합니다.
:
: 보통 Header file의 Dependency 때문에 문제가 발생하면,
: Include 순서를 바꾸거나, Build Order를 조정해서 해결하는데..
: 두 파일의 include 순서를 바꾸거나, Build Order를 바꿔도 마찬가지거나,
: 또다른 엄청난 Compile Error를 만들어 냅니다.
:
: 최종적으로 찾아낸 것이 <<iphlpapi.h>과 "SBSimpleSftp.hpp" 가 서로 충돌하는 상황입니다.
: GuardnetThread.cpp 에서 UnitMain.h를 Include할 때 "SBSimpleSftp.hpp" 파일만 include에서
: 제외하고 싶습니다. 그러면, 이 지난했던 문제가 해결될 것 같습니다.
:
: 결론적으로,
: 어떤 소스 파일(GuardnetThread.cpp)을 컴파일하면서,
: 이 파일이 Include 하는 파일(UnitMain.h)에서 특정 include file("SBSimpleSftp.hpp")만 Include를 제외시키고
: 싶습니다.
:
: 이런 것이 가능할까요?
:
: #pragma syntax을 뒤져봤는데.. 흔히 쓰는 hdrstop, comment, link 정도는 알겠는데..
: 다른 옵션들은 도통 이해가 가지 않네요.
:
: Incldue 하면서 특정 파일만 include에서 제외하는 것이 가능할까요?
:
: 아래는 Error Text입니다.
:
:
[bcc32 Error] mprapi.h(1273): E2015 Ambiguity between 'CERT_NAME_BLOB' and 'Sbwincrypt::CERT_NAME_BLOB'
:   Full parser context
:     GuardnetThread.cpp(16): #include c:\program files (x86)\embarcadero\rad studio\12.0\include\windows\sdk\iphlpapi.h
:     iphlpapi.h(34): #include c:\program files (x86)\embarcadero\rad studio\12.0\include\windows\sdk\iprtrmib.h
:     iprtrmib.h(38): #include c:\program files (x86)\embarcadero\rad studio\12.0\include\windows\sdk\mprapi.h
:     mprapi.h(1266): class _IKEV2_TUNNEL_CONFIG_PARAMS
: [bcc32 Error] mprapi.h(1309): E2015 Ambiguity between 'CRYPT_HASH_BLOB' and 'Sbwincrypt::CRYPT_HASH_BLOB'
:   Full parser context
:     GuardnetThread.cpp(16): #include c:\program files (x86)\embarcadero\rad studio\12.0\include\windows\sdk\iphlpapi.h
:     iphlpapi.h(34): #include c:\program files (x86)\embarcadero\rad studio\12.0\include\windows\sdk\iprtrmib.h
:     iprtrmib.h(38): #include c:\program files (x86)\embarcadero\rad studio\12.0\include\windows\sdk\mprapi.h
:     mprapi.h(1306): class _SSTP_CERT_INFO

:
: 고수님들의 도움을...~~!!
: 감사합니다.~!!
:
:
:

+ -

관련 글 리스트
74674 [질문] include 되는 header file의 일부분을 include 에서 제외할 수 있나요? 단단한돌 3393 2017/11/23
74679     Re:[질문] include 되는 header file의 일부분을 include 에서 제외할 수 있나요? 빌더(TWx) 3824 2017/11/27
74680         감사~감사~감사~!! 해결~!! 단단한돌 3644 2017/11/28
74675     혹시 이렇게 하는 방법은? 단단한돌 3389 2017/11/23
74681         자답... Re:혹시 이렇게 하는 방법은? 단단한돌 3579 2017/11/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.