CAFE

Re:[VC++] Melsec Q모델 이더넷 연결좀 봐주세요..

작성자회색늑대|작성시간06.05.03|조회수3,146 목록 댓글 0

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를 사용할 때와 같은 개념으로 사용하실 수 있을 것입니다. 잘 되기를 바랍니다.

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼