윈도우 프로그래밍

COM 객체에 대해서 비주얼스튜디오(Visual Studio)에서 인텔리센스 사용하기

하늘흐늘 2021. 10. 4. 16:36
반응형

대신증권 Cybos API의 COM객체를 사용하는데 Visual Studio에서 인텔리센스가 되지 않을때 해결하는 방법이다. Cybos API가 COM객체인 관계로 다른 COM객체에 대해서도 적용될 듯 하다.
  
우선 COM 자체가 윈도우용인 관계로 관련 라이브러리와 컴파일 및 링크를 위하여 MFC로 프로젝트를 생성하였다. (순수 C++로 하려고해도 관련 파일을 포함하고 컴파일 옵션 및 링크를 설정해야 하기 때문에 이쪽이 편하다.)
  
1. 우선 아래 예와 같이 COM 관련해서 import한다.
#import "C:\DAISHIN\CYBOSPLUS\cpdib.dll" 
  
2. 컴파일을 한다.
    
그럼 Debug빌드면 관련 Debug폴더에 Release빌드면 관련 Release폴더에 *.tlh 파일과 *.tli파일이 생성된다.
  
3. 그럼 해당 파일을 아래 디버그 버전 예와 같이 포함하여 주면 해당 COM 객체의 클래스들에 대하여 인텔리센스를 사용할 수 있게 된다.  아래 예에서 *.tlh 파일이 생기는 위치는 {project folder}/{debug folder}다.
#include "i:/_vs/_stock/MFCCybos/MFCCybos/Debug/cpdib.tlh"
  
참고로 Debug 폴더의 것을 포함하고 사용하다가 Release 컴파일을 하게 되면 컴파일 에러가 난다.
이때는 해당 #include를 주석처리하여 빌드하면 된다.
물론 Release 빌드에서 개발을 계속하려면 위의 과정처럼 한번 컴파일한 뒤에 Release폴더에 있는 *.tlh파일을 Debug폴더의 것을 대신하여 포함하여 개발하면 된다. 
  
필자는 프로젝트 전체에서 사용하기 위하여 pch.h(Visual Studio 구버전: stdafx.h)에 넣고 사용하였다.

  

반응형