머.. 엑티브 엑슈로 된 Mscomm.ocx를 VC++에서 사용하는 팁!
(원래는 직접 제어 할려고 했으나 귀나니즘과 오늘 하루의 짜증나는 충격에 ... 머 귀찬아서지...)
VC++에서 ACTIVEX의 MSCOMM.OCX 사용방법
MSCOMM.OCX 추가!
1. Project ->Add To Project -> Components and Controls
2. ..Microsoft Visual StudioCommonMSDev98GalleryRegistered ActiveX ControlsMicrosoft Communications Control 추가
3. Resource Editor 에서 Controls 에 보면 전화기 모양의 컨트롤이 생깁니다.
4. 끌어다가 Main Dialog 에 추가 합니다.
5. 전화기의 Property -> 버퍼 에서 RThreshold 를 1로 채크합니다.
참고) 위에서 MSCOMM.OCX를 추가하면 비주얼씨뽈뽈이 자동으로 클래스를 등록 시켜준다... ^^
시리얼 포트 생성하기(OnInitDialog)
1. 클래스 위저드에서 MSCOMM의 컴포넌트에 변수 부여... ex) CMSComm m_msComm1; 요딴식으로
2. 시리얼 포트 만들기 ex) m_msComm1.Create(NULL, WS_VISIBLE, CRect(0,0,10,10),this, IDC_MSCOMM_1);
3. RThreshold Enable ex) m_msComm1.SetRThreshold(1);
통신 포트 속도 설정 및 포트 동작 활성화 하기
if (m_msComm2.GetPortOpen() == false) {
m_msComm2.SetCommPort(m_nPort2+1);
m_msComm2.SetSettings(m_szSetting2);
m_msComm2.SetPortOpen(true);
}
if (m_msComm2.GetPortOpen() == false)
AfxMessageBox("통신포드 ?번이 정상적으로 오픈되지 않았습니다");
통신 포트 동작 중지 하기
m_msComm1.SetPortOpen(false);
recevie 루틴
ON_EVENT(CRS232_Port_2Dlg, IDC_MSCOMM_1, 1 /* OnComm */, OnOnCommMscomm1, VTS_NONE)
void CRS232_Port_2Dlg::OnOnCommMscomm1()
{
UpdateData(true);
VARIANT receive1;
receive1 = m_msComm1.GetInput();
m_szReceive1 = m_szReceive1 + receive1.bstrVal;
UpdateData(false);
}
이상으로 비베만큼 간편한 VC++에서의 232 사용하기... ^^
http://blog.naver.com/stl2k/19290456