|
이전 Applaication으로 개발했던... 프로그램을 ActiveX로 변환하려고 하는데...
좀 막히는곳이 있어서 고수님들의 조언을 듣고자 올립니다!!! (꾸벅 -.-)
음... 프로그램 구조를 나름대로 MVC형태로 갈려고 하거든요...
그래서...
ActiveXForm을 V(View)로 하고....
ActiveXForm상의 콤포넌트들에 대한 제어를
별로의 Unit File을 생성하여 그곳에 코딩하려고 하는거죠....
(왜냐면... 복잡한 코포넌트 제어 대한 코딩을
AxtiveXForm 한곳에 몰아서 하면
나중에 유지보수시 감당이 안될것 같아서.. -_-;;)
여튼간... ActiveXForm에 Edit, ListView등... 컴포넌트를 이용하여 화면을 만든후....
새로운 Unit을 생성하여.. Header(*.h)에 Class(CControlCM이라는...)를 선언하고
cpp파일에는 ActiveXForm안에 존재하는 콤포넌트를 제어 하는 코딩을 하는거죠...
그런데.. 문제가 발생했습니다!!
ActiveXForm의 Header(*.h)를 새로생성한 Unit의 cpp파일에 include했는데....
컴파일 에러가 수두룩... -_-;;
[C++ Error] XCompanyManageImpl.h(556): E2303 Type name expected
[C++ Error] XCompanyManageImpl.h(556): E2275 { expected
[C++ Error] XCompanyManageImpl.h(556): E2029 'TXCompanyManageImpl' must be a previously defined class or struct
[C++ Error] XCompanyManageImpl.h(556): E2015 Ambiguity between 'XCompanyManage' and 'Pxcompanymanage_tlb::XCompanyManage'
[C++ Error] XCompanyManageImpl.h(556): E2303 Type name expected
[C++ Error] XCompanyManageImpl.h(556): E2303 Type name expected
[C++ Error] XCompanyManageImpl.h(556): E2275 { expected
[C++ Error] XCompanyManageImpl.h(619): E2293 ) expected
[C++ Warning] XCompanyManageImpl.h(658): W8022 '__stdcall TXCompanyManageImpl::QueryInterface(const _GUID &,void * *)' hides virtual function '__stdcall TCustomForm::QueryInterface(const _GUID &,void *)'
[C++ Warning] XCompanyManageImpl.h(658): W8022 '__stdcall TXCompanyManageImpl::QueryInterface(const _GUID &,void * *)' hides virtual function '__stdcall TComponent::QueryInterface(const _GUID &,void *)'
[C++ Error] XCompanyManageImpl.h(570): E2451 Undefined symbol 'm_VclCtl'
[C++ Error] XCompanyManageImpl.h(587): E2316 'Lock' is not a member of 'TXCompanyManageImpl'
[C++ Error] XCompanyManageImpl.h(587): E2316 'Unlock' is not a member of 'TXCompanyManageImpl'
[C++ Error] XCompanyManageImpl.h(587): E2268 Call to undefined function 'InternalQueryInterface'
[C++ Error] XCompanyManageImpl.h(588): E2268 Call to undefined function 'VCL_CONTROL_COM_INTERFACE_ENTRIES'
[C++ Error] XCompanyManageImpl.h(588): E2108 Improper use of typedef 'IXCompanyManage'
[C++ Error] XCompanyManageImpl.h(589): E2141 Declaration syntax error
[C++ Error] XCompanyManageImpl.h(589): E2139 Declaration missing ;
[C++ Warning] XCompanyManageImpl.h(589): W8070 Function should return a value
[C++ Error] XCompanyManageImpl.h(602): E2316 'm_sizeExtent' is not a member of 'TXCompanyManageImpl'
[C++ Error] XCompanyManageImpl.h(602): E2040 Declaration terminated incorrectly
[C++ Error] XCompanyManageImpl.h(602): E2139 Declaration missing ;
[C++ Warning] XCompanyManageImpl.h(602): W8070 Function should return a value
[C++ Error] XCompanyManageImpl.h(612): E2257 , expected
[C++ Error] XCompanyManageImpl.h(612): E2451 Undefined symbol 'VclComBase'
[C++ Error] XCompanyManageImpl.h(612): E2451 Undefined symbol 'convert'
[C++ Error] XCompanyManageImpl.h(612): E2303 Type name expected
[C++ Error] XCompanyManageImpl.h(612): E2377 If statement missing )
[C++ Error] XCompanyManageImpl.h(612): E2054 Misplaced else
[C++ Error] XCompanyManageImpl.h(612): E2228 Too many error or warning messages
차라리 제가 코딩한곳에서 에러가나면 편할텐디... -_-;;
BC++에 의해 자동으로 생성된 코드에서 컴파일 에러가 떨어지니...
정말 대책이 안 서는군요...
저... ActiveXForm의 Header를 다른 Unit에서는 Include해서 사용할수 없는건가요?
고수님들의 답변 부탁드립니당!!!
감사합니다!!
|