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