분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
void Cex1Dlg::OnBnClickedPopen()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
CString sPortName;
DWORD dwBaud;
m_ComAccess = new CCommThread(this);
if(m_ComAccess->m_bConnected == FALSE)
//Check to close port
{
//GetCurSel()로 현재 선택된 순서를 얻어옴
switch(dwBaud.GetCurSel())//BaudRate search
{
case 0:
dwBaud = 9600;
break;
case 1:
dwBaud = 115200;
}
//GetCurSel()로 현재 선택된 순서를 얻어옴
switch(sPortName.GetCurSel())//Port search
{
case 0:
sPortName="COM1";
break;
case 1:
sPortName="COM2";
break;
case 2:
sPortName="COM3";
break;
case 3:
sPortName="COM4";
break;
case 4:
sPortName="COM5";
break;
}
//통신 포트를 연다
if(m_ComAccess->OpenPort(sPortName,dwBaud))
//Open port
{
AfxMessageBox(_T("Port open"));
}
else //Port open fail
{
AfxMessageBox(_T("Port open false"));
}
}
else if(m_ComAccess->m_bConnected == TRUE)
AfxMessageBox(_T("Already Port open"));
else
AfxMessageBox(_T("The Port don't open"));
}
-----CCommThread.h-------
#ifndef _CCOMMTHREAD_H_
#define _CCOMMTHREAD_H_
#define WM_COMM_READ (WM_USER +1)
#define BUFF_SIZE 4096
class CQueue
{
public:
BYTE buff[BUFF_SIZE];
int m_iHead, m_iTail;
CQueue();
void Clear();
int GetSize();
BOOL PutByte(BYTE b);
BOOL GetByte(BYTE *pb);
BOOL GetByte(BYTE *pb, int pos);
};
///////////////////////////////////////////////////////////////////////////////////////
// TEXT Control Define
#define STX 0x02
#define ETX 0x03
#define AGIN 0x04
#define ACK 0x06
#define NAK 0x15
///////////////////////////////////////////////////////////////////////////////////////
// Define ASCII
#define ASCII_BEL 0x07
#define ASCII_BS 0x08
#define ASCII_LF 0x0A
#define ASCII_CR 0x0D
#define ASCII_XON 0x11
#define ASCII_XOFF 0x13
///////////////////////////////////////////////////////////////////////////////////////
class CCommThread
{
//DECLARE_DYNCREATE( CCommThread )
public:
CCommThread();
CCommThread(CWnd *wnd);
~CCommThread();
CWnd *m_Wnd;
HANDLE m_hComm;
CString m_sPortName;
BOOL m_bConnected;
OVERLAPPED m_osRead, m_osWrite;
HANDLE m_hThreadWatchComm;
WORD m_wPortID;
CQueue m_QueueRead;
BOOL OpenPort(CString sPortName,DWORD dwBaud);//,WORD wParam);
BOOL checkPort();
void ClosePort();
DWORD WriteComm(BYTE *pBuff,DWORD nToWrite);
//DWORD WriteComm(LPWSTR pBuff,DWORD nToWrite);
DWORD ReadComm(BYTE *pBuff,DWORD nToRead);
};
DWORD ThreadWatchComm(CCommThread* pComm);
#endif
대략 이런 코드인데
1>c:\documents and settings\administrator\my documents\visual studio 2008\projects\ex1\ex1\ex1dlg.cpp(169) : error C2228: '.GetCurSel' 왼쪽에는 클래스/구조체/공용 구조체가 있어야 합니다.
1> 'DWORD' 형식입니다.
1>c:\documents and settings\administrator\my documents\visual studio 2008\projects\ex1\ex1\ex1dlg.cpp(178) : error C2039: 'GetCurSel' : 'ATL::CStringT<BaseType,StringTraits>'의 멤버가 아닙니다.
이런식의 에러가 뜨네요.
제가 MFC는 공부한적이없어 걍 책보고 따라가기식으로하는데, 고치질 못하겠네요 ㅠㅠ
도와주실분 없나요?
죄송합니다. 댓글 작성은 회원만 가능합니다.