본문 바로가기
반응형

C & C++/C & C++206

File Packing [패킹 프로그램] File Packing [패킹 프로그램]특정 파일을 최대 1000개까지 하나로 패킹하고다시 언패킹 할 수 있게 하는 프로그램 (압축률은 0%..) #include "packing.h" #define PACK_VERIFICATION 18 // 구현하면서 막혔던점 // fread에서 파일이 계속 안읽혔다.// 알고보니 getFileSize 함수에서 함수 길이를 알던 도중 포인터를 끝으로 보내고// rewind를 하지않았다. int pack (char (* fileName)[128], size_t fileNum, char * packName) {int i;// 패킹 결과물 파일의 파일 포인터FILE * fPack;// 패킹할 파일들의 파일 포인터FILE * fFiles;// 버퍼char * buffer;// .. 2018. 1. 4.
한글, 영어, 숫자 구분하기 CString a = L"/*a에 조사할 문자열을 넣습니다.*/ "; if( isalpha( a.GetAt(0) ) ) //email 인걸 찾으려면... if(a.Find("@")) { //MessageBox("영어"); } if ( 0 >= a.GetAt(0) || 127 < a.GetAt(0) ) { //MessageBox("한글"); } if( isdigit( a.GetAt(0) ) ) { //MessageBox("숫자"); } 2014. 12. 3.
스레드 사용법 오랫만에 정말 친절한 설명을 찾았다..그동안 개념이 어리버리했는데 확실히 개념을 잡았다. Threads and Thread synchronizationThreadsMFC는 2종류의 쓰레드로 구분할 수 있다. 1. user interface threads메시지 루프가 존재한다. 윈도우를 만들고 이들 윈도우로 보내진 메시지들을 처리한다. 어플리케이션안에 또하나의 어플리케이션(ui-threads)을 만드는것과 비슷하다.일반적으로 별개로 움직이는 다중 윈도우를 만들때 많이 사용되어 진다. 2. worker threads직접적으로 메시지를 받지 않고 백그라운드에서 동작되기 때문에 윈도우나 메시지루프들이 필요가 없다. %이 둘간의실질적인 차이는 아직 잘모르겠다. 좀 더 학습하도록 -Creating a Worker .. 2014. 12. 1.
마이크로 세컨드 단위로 실행시간 측정하기 출처 - 여기여기 다음 예제는 윈도우 환경에서 마이크로 세컨드 단위로 실행시간을 측정하는 방법에 대해서 설명하고 있습니다. 본 예제를 수행하기 위해서는 하드웨어 수준에서 고성능 타이머를 지원해야 하며, 고성능 타이머에 대한 지원 유무는 QueryPerformanceFrequency() 의 리턴값으로 확인이 가능합니다. => QueryPerformanceFrequency() 리턴값이 'TRUE' 일 경우 하드웨어 수준에서 고성능 타이머를 지원함. #include #include __int64 GetMicroSecond() { LARGE_INTEGER frequency; LARGE_INTEGER now; if ( !QueryPerformanceFrequency(&frequency) ) return (__in.. 2014. 10. 29.
윈도우 콘솔( Console ) 실행 서버 프로그램 / Dialog / 다이얼로그 / 1. 윈도우에서 콘솔 띄우기 BOOL AllocConsole() 2. 생성된 콘솔에 문자열 보내기 CString str; str = "문자열" DWORD dwWrite; HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); WriteFile(hOut, str, str.GetLength(), &dwWrite, NULL); 3. 생성된 콘솔없애기 BOOL FreeConsole() 2014. 5. 12.
유니 코드( Unicode ) 환경에서의 WM_COPYDATA 쓰레기 값 제거 보내는 부분 const wchar_t *sBuff = strData.GetBuffer(); COPYDATASTRUCT cds; cds.dwData = 5; cds.cbData = ( wcslen(OLE2CT(strData) ) + 1) * 2; cds.lpData = (VOID*)OLE2CT(strData); CWnd *pWnd = CWnd::FindWindow(NULL, L"Chat2"); if(!pWnd) { AfxMessageBox(L"Program is not found!"); return TRUE; } pWnd->SendMessage(WM_COPYDATA, (WPARAM)m_hWnd, (LPARAM)&cds); 받는 부분 switch(pCopyDataStruct->dwData) { CString.. 2014. 4. 29.
반응형