|
안녕하세요.
회사에서 기존에 VC로 사용하던 것을 빌더로 옮기려고 하고 있습니다.
PLC 제어용으로 사용되는 MX Component가 ocx로 되어 있어,
이를 Component 메뉴 > Import Component... 를 통하여
프로젝트에 ”_tlb.cpp, *_ocx.cpp를 생성하여 사용할려고 하는데요.
정상적으로 잘 되지 않아 질문을 드립니다.
1. Component 메뉴 > Import Component... >
2. Import Component 다이얼로그박스에서 Import a Type Libray 선택 > Next 버튼 선택 (첫번째 그림)
3. Registered Type Libraries 에서
ActMulti.dll 선택 (MX Componet version 3.0) > Next 버튼 선택 (두번째 그림)
(이미 등록이 되어 있어 하단에 있는 Add버튼으로 등록하지는 않았는데... 맞는 것인지....)
4. Component 에서
Palette Page : (none)
Unit Dir Name : 포함시킬 실제프로젝트가 있는 폴더 선택
Search paht : 공란
Generate Components Wrappers : 선택 안함 (세번째 그림)
으로 설정하고 Next 버튼
5. Create Unit에서
Add unit to 현재프로젝트
를 선택
Finish 버튼 (네번째 그림)
이와 같은 순서로 하면 ”_tlb.cpp, *_ocx.cpp 파일 및 헤더파일이 생성이 됩니다.
당연히 컴포넌트 파렛트에는 생성되는 것이 없구요.
(4단계에서 파렛트를 선택하여 주어도 최종적으로 해당 파렛트에 컴포넌트가 생성되지는 않더군요.)
이렇게 하는 것이 맞게 한 것입니까 ?
이렇게 하였을 경우,
Actmultilib_tlb::IActEasyIF3* mp_plc = new Actmultilib_tlb::IActEasyIF3;
와 같이 생성하려면, 컴파일 오류가 납니다.
아마도 정의되지 않은 가상함수가 포함되어 있어 그런 것 아닌가 싶습니다.
[BCC32 Error] FormFlowCtl.cpp(49): E2352 Cannot create instance of abstract class 'IActEasyIF3'
[BCC32 Error] FormFlowCtl.cpp(49): E2353 Class 'IActEasyIF3' is abstract because of '__stdcall IActEasyIF3::ReadDeviceBlock2(wchar_t *,long,short *,long *) = 0'
에러 메세지는 위와 같습니다.
MX Component를 빌더 상에 등록하는 방법과
등록된 컴포넌트를 사용하는 방법을 알고 싶습니다.
많은 조언 부탁드립니다.
|