MX-Component가 설치된 디렉토리에 가시면 C로 된 예제들이 있습니다.
몇 가지 가장 중요한 몇가지 점만 짚어 본다면
MFC를 사용한다는 전제로 COM 관련한 기능을 포함하는 것으로 프로젝트를 만들면 아래와 같은 코드가 포함될 것입니다. 반드시 이런 과정을 통해 COM 관련 초기화가 이루어 져야 합니다.
/***************************************************/
/* Initialize OLE Library */
if (!AfxOleInit())
{
AfxMessageBox("AfxOleInit() Failed.");
return FALSE;
}
/***************************************************/
다음으로 객체를 만드셔야 합니다.
Act 디렉토리 아래와 있는 include 디렉토리에 있는 헤드 파일을 사용할 수 있도록 하시고,
EsayIF를 사용한다면 아래와 같이 해서 COM 객체를 만드셔야 합니다.
// ActEasyIF Control
hr = CoCreateInstance( CLSID_ActEasyIF,
NULL,
CLSCTX_INPROC_SERVER,
IID_IActEasyIF,
(LPVOID*)&mp_IEasyIF);
if(!SUCCEEDED(hr)){
AfxMessageBox("CoCrateInstance() Failed.");
exit(0);
}
실제로 mp_IEasyIF를 사용하실 때는 아래와 같이 합니다.
이것은 ActLogicalStationNumber 프로퍼티에 값을 설정하는 것인데, VB에서는 프로퍼티가 언어 차원에서 지원되기 때문에 ActLogicalStationNumber = 2 이렇게 하겟지만 C++은 put_ActLogicalStationNumber 라는 메소드를 사용하는 형태가 됩니다. 물론 값을 읽을 때는 get_ActLogicalStationNumber 라는 메소드를 사용합니다.
hr = mp_IEasyIF->put_ActLogicalStationNumber(2); // Exec set-property method
if(SUCCEEDED(hr)){ // Compornent Communication is succeeded?
hr = mp_IEasyIF->Open(&lRet); // Exec Open Method
아래는 Cpu 타입을 구하는 것입니다.
hr = mp_IEasyIF->GetCpuType(&szCpuName,&lCpuCode,&lRet); // Exec GetCpuType Method
위 코드들은 Act 디렉토리 아래의 Sample 디렉토리에 포함된 예제 중에서 CustomSampleEng 라는 디렉토리에 아래에 있는 코드 중에서 일부를 잘라 붙인 것입니다.
예제를 실행시켜 보시면 도움이 될 것입니다. 초기에 조금 거추장 스러운 부분만을 해결한다면 VB를 사용할 때와 같은 개념으로 사용하실 수 있을 것입니다. 잘 되기를 바랍니다.