블로그 이미지
생각처럼

카테고리

전체보기 (209)
TOOL (1)
다이어리 (1)
Bit (200)
android (8)
C&C++ (3)
C# (26)
VB.Net (4)
MFC (0)
Win Ce (5)
아키텍쳐 (4)
WPF (9)
Rom (0)
읽어보기 (25)
Linux (24)
Java (0)
HELP? (0)
Total
Today
Yesterday

달력

« » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

태그목록

최근에 올라온 글

UpdateData(TRUE);
 DWORD dwsize = NULL;
 LPSTR pdata = NULL;
 char *sTime;
 //CMy123Dlg::ConvertU2W(str,&pdata);
 dwsize = WideCharToMultiByte(CP_ACP, 0, m_send.GetBuffer(NULL), m_send.GetLength()+1,NULL,NULL, NULL, NULL);//크기 얻어옴
 sTime = (char*)malloc(1000); //공간 할당 //서버가 char 타입 1000이였기 때문에 임시로 원래는 dwsize
 WideCharToMultiByte(CP_ACP, 0, m_send.GetBuffer(NULL), m_send.GetLength()+1,sTime,dwsize, NULL, NULL);  //데이터 변환
 c_socket->Send(sTime,dwsize+1,NULL); //전송
 free(sTime);
 UpdateData(FALSE);
 
pda 상에서의 코드변환 서버에서는 굳이 수정할 필요 없음
Posted by 생각처럼
, |

CCesocket 클래스를 상속하여 소켓을 생성하였더니

Csocket 으로 상속하였을때는 안되던 이벤트들이 먹히기 시작했다 신기하다....

ce 프로그래밍시 소켓클래스는 CCesocket 클래스를 상속해야만 하는건가??

 

void CSocket_C::OnReceive(int nErrorCode) 
{
 // TODO: Add your specialized code here and/or call the base class
 
 ((CClientApp*)AfxGetApp())->ReceiveData(); // 데이터를 읽는다.
 CAsyncSocket::OnReceive(nErrorCode);
}

 

 

void CClientApp::ReceiveData()
{
 char temp[1000];
 CString strText;
 client_s->Receive(temp, sizeof(temp));

 UINT    nPort;
 client_s->GetPeerName(strText, nPort); // 상대방의 IP 주소와 포트 번호 얻음
 strText = "[ " + strText + " ] " + temp;
 //((CListBox*)m_pMainWnd->GetDlgItem(IDC_CLIST))->InsertString(-1, strText);
 //CClientDlg* mf = (CClientDlg*)::AfxGetMainWnd();
 //mf->m_list = temp;
 ((CEdit*)m_pMainWnd->GetDlgItem(IDC_CLIST))->ReplaceSel(strText,TRUE);
}

Posted by 생각처럼
, |

에디트 박스 멀티라인 컨트롤시

줄바꿈이 가능하게 하려면

void CClientApp::ReceiveData()
{
 char temp[1000];
 CString strText;
 client_s->Receive(temp, sizeof(temp));

 UINT    nPort;
 client_s->GetPeerName(strText, nPort); // 상대방의 IP 주소와 포트 번호 얻음
 strText = "[" +strText+ "]" + temp+"\r\n"; //<-------------요부분 "\r\n" 이걸 문장끝에 추가하면 땡!
 ((CEdit*)m_pMainWnd->GetDlgItem(IDC_CLIST))->ReplaceSel(strText,NULL);
 
}

 

//물론 옵션에서 멀티라인 설정을 해주어야 한다는 사실

Posted by 생각처럼
, |

BOOL CClientDlg::PreTranslateMessage(MSG* pMsg) //<------다이알로그 클래스위자드에서 키값 캡처함수
{
 // TODO: Add your specialized code here and/or call the base class
      if(pMsg->message == WM_KEYDOWN && pMsg->hwnd == GetDlgItem(IDC_MESSGE)->m_hWnd)
           { //에디트박스에서 키다운이 발생하였는가 체크                       요기가 에디트박스
                if(pMsg->wParam == VK_RETURN) //<-- 눌려진키가 엔터키인가  체크
                 { 
                        OnSend();   //<-- 전송함수 실행~~~ㅋ
                        return TRUE; 
                  } 
           } 
 return CDialog::PreTranslateMessage(pMsg);
}

 

별것두 아닌것이 은근히 요구하는게 많다는....ㅎㅎ

Posted by 생각처럼
, |

Windows CE 구조

Bit/Win Ce / 2012. 2. 3. 17:35

출처 jay_korea의 블로그 | 대머리
원문 http://blog.naver.com/jay_korea/30002745693

허거걱... 한참을 이번 포스트를 쓰고 있었는데... 갑자기 새로운 internet page가 열리는 바람에

작성해 놓은 내용이 모두 다 훨훨~~ 날아갔다. T_T

다시 작성해야겠다.

 

이번 에는 Windows CE의 구조를 정리해 볼까 한다.

내용은 내가 Embedded World 와 마소, WECOM (http://wecom.dstcorp.com/)에 올려놓은 기고 내용을 기반으로 내 마음에 맞게 다시 수정, 보충해 볼꺼다.

 

 
 
위의 그림에서 확인해 볼수 있듯이, Windows CE는 Kernel을 비롯하여 여러개의 System Processor로 구성되어있다.
여기서의 Processor라는 의미는 일반적으로 우리가 잘 알고있는 실행 file인 "*.exe"를 의미한다.
 
대부분의 개발자들이 관심있어하는 Windows CE의 Kernel은 "NK.exe" 이다.
Kernel의 size는 약 250KByte 정도 된다 (작은 size의 Kernel이다.)
 
그런데 웃끼게도 Windows CE환경에서는 Kernel(NK.exe)만 가지고는 아무것도 할수가 없다.
(물론 조금은 할수 있다. 근데 거의 할수 없다고 볼수 있다.  ㅎㅎㅎ ^^ )
Windows CE의 Kernel은 스케쥴링, API(Application Programming Interface)실행, Memory관리 등
몇몇 기본 service만 제공할뿐이다.  ( 서비스 맞나 !! )
 
그럼 OS의 여러 다른 기본 서비스는 ?
예를 들어 File system, Data Base, UI (User Interface), Graphic 과 Window 처리 등등......
 
이들 여러 서비스는 앞에서 얘기했던 "System Processor"라는 것들이 제공 해준다.
 (얘네 들은 확실한 서비스를 제공하는게 원칙이다 ㅎㅎㅎ ^^ )  
   
System Processor는 일반적으로 아래와 같은 것들이 있다.
 
"Filesys.exe" File system 및 Data Base 그리고 system설정(Registry)들을 관리, 서비스 해준다.
 
"Device.exe" Device Driver관리자로 Driver들을 load하고 관리해준다.
 
"GWES.exe" Graphic Windowing Event Subsystem이라 부르고, graphic, event등 UI부분의 서비스를 제공한다.
 
"Explorer.exe" Windows CE의 기본 UI Shell이다. Windows 2000, XP와 같은 바탕화면 과 Task Bar등을 표시하고 User Application의 실행을 도와준다.
 
여기에 하나 빠진게 있다. (그림에도 빠졌다.)
"Service.exe" 라고~  ( 얜 진짜로 확실하게 서비스만 해주는 얘다.. ^^ )
이 System Processor는 Device driver에서 하기에는 좀 그런 protocol관련 service들을 load하고 관리해준다. 뿐만 아니라 간단한 Application같은 Thread의 등록을 이 service.exe에 하여 특정 기능을 수행할수 있다.
나중에 다시 확인해 보겠지만, Windows CE의 device driver들은 쫌 이상하게 되있어서 protocol service들을 device driver로 만들어 사용할수도 있다.
 
오늘은 퇴근후 쫌 중요한 미팅이 있어서 여기 까장 쓸란다...
 
또 허접할 다음 포스트를 기대해 주시라 ~~   ^^
 
Posted by 생각처럼
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함