본문 바로가기

프로그래밍/general programming

사이보스 플러스 MFC 프로그램 작성 따라 하기 2/2 (Visual Studio 샘플프로그램)

사이보스 플러스 설치 후 비주얼 스투디오 MFC 프로그램을 진행해보자.

사이보스플러스 설치는 이전글 을 참고하세요


비주얼 스투디오에서 새프로젝트를 만들자.

새프로젝트->MFC응용프로그램->다이얼로그 기반으로 신규 프로젝트를 생성한다.


다이얼로그에 종목코드 입력을 위한 에디트 콘트롤과 현재가 요청 버튼을 만들자.


stdafx.h 에 아래와 같이 추가한다.(CYBOS 설치 경로를 바꿨다면 맞춰서 수정하자)

#import "C:\daishin\cybosplus\cpdib.dll" no_namespace 

추가후 캡쳐 화면과 같이 나오는 경우 프로젝트 빌드를 해주면 cpdib.tlh 파일이 생성되어 오류 내용은 없어진다.


InitInstance() 함수에 아래 내용을 추가한다.

AfxOleInit(); //OLE 지원을 초기화(COM 라이브러리 초기화)


현재가 수신 버튼의 클릭 함수에 아래와 같이 추가하자.

void CForcastPriceTrendDlg::OnBnClickedButton1()

{

IDibPtr pStockMst;

CString strErrorMsg = _T("통신에러 : ");

CString strCode;

HRESULT hr;

CString strStockInfo;

try {

m_ItemCode.GetWindowTextW(strCode);

hr = pStockMst.CreateInstance((__uuidof(StockMst)));

if (FAILED(hr))

_com_raise_error(hr);

//종목코드에 해당하는 주식 현재가 요청

pStockMst->SetInputValue(0, (LPCTSTR)strCode);

pStockMst->BlockRequest();

if (0 != pStockMst->GetDibStatus()) {

strErrorMsg += (LPCTSTR)pStockMst->GetDibMsg1();

strErrorMsg += (LPCTSTR)pStockMst->GetDibMsg2();

strErrorMsg.TrimRight();

AfxMessageBox(strErrorMsg);

return;

}

strStockInfo = "종목명 : ";

strStockInfo += pStockMst->GetHeaderValue(1);

m_StockInfo.SetWindowTextW(strStockInfo);

}

catch (_com_error e) {

  AfxMessageBox(e.ErrorMessage());

}

}

종목코드 입력하여 버튼을 클릭하면 조회후 종목명을 표시 하게 하는 내용이다.


컴파일 후 실행하여 A005930 입력후 현재가 수신을 누르면 삼성전자가 나오게 된다.

종목코드는 사이보스의 현재가 화면(7021)을 참고하여 확인해보면 된다.


CYBOS plus 도움말을 참고하여 다른 항목을 사용할수 있으니 참고하자.

CYBOS plus 홈페이지 http://www.cybos.co.kr/cybosplus/default.htm

도움말 내려받기


참고로 CYBOS plus 실행도 잘됐고 코딩도 이상이 없는데 문제가 있다면 다음 두가지 조치를 해보자.

1. CYBOS plus 접속시 설정 버튼을 누르고 세가지 체크를 해제후 접속

2. CYBOS plus와 비주얼스투디오 둘다 관리자 권한으로 실행


향후 실시간으로 종목의 시세 수신 프로그램 작성 글도 올려보겠다.