본문 바로가기
반응형

C & C++444

Windows Object와 Handle이란? 1. Windows Object와 Handle이란? Windows 운영체제 환경에서 실행되는 모든 응용 프로그램들은 시스템 자원에 대한 직접적인 접근이 불가능하다. 그렇기 때문에 Windows 환경에서 실행되는 응용 프로그램에서 시스템 자원(Object)에 접근하기 위해서는 Windows 운영체제에서 제공하는 핸들(Handle)을 사용하여 시스템의 자원에 접근해야 한다. 많이 악성코드들이 응용프로그램을 삭제, 종료 하거나 특정코드에 대한 삽입이 가능한 이유가 오브젝트 핸들을 사용하기 때문이다. 2. Object Pointer Table Object 들은 응용프로그램 내에서 관리되지 않고 Windows 운영체제가 관리한다. Windows 운영체제는 시스템 내부적으로 오브젝트에 직접 접근할수 있는 테이블 만.. 2011. 10. 25.
CFileFind 를 이용하여 디렉토리 안의 파일 찾기 CFileFind finder; BOOL bWorking = finder.FindFile("*.*"); while (bWorking){ bWorking = finder.FindNextFile(); finder.GetFileName(); // 파일 이름 finder.GetFilePath(); // 파일 경로 + 이름 } 2011. 10. 25.
Static Control 에서의 마우스 이벤트 처리 BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if (pMsg->message == WM_LBUTTONDOWN) { if (pMsg->hwnd == GetDlgItem(IDC_STATIC_TEXT)->GetSafeHwnd()) AfxMessageBox("Left Button Down"); } else if (pMsg->message == WM_RBUTTONDOWN) { if (pMsg->hwnd == GetDlgItem(IDC_STATIC_TEXT)->GetSafeHwnd()) AfxMessageBox("Right Button Down"); } r.. 2011. 10. 25.
파일에서 버전 정보 얻어오기 CString TestDlg::GetAppVersion(CString fileName) { BSTR bstrFilePath = fileName.AllocSysString(); CString strVersion = L""; DWORD dwHdlDest; DWORD dwSizeDest; dwSizeDest = GetFileVersionInfoSize( (LPWSTR)bstrFilePath, //버전을 알고자 하는 파일의 경로 &dwHdlDest); if (dwSizeDest > 0) { BYTE* pDestData = new BYTE[dwSizeDest + 1]; if (GetFileVersionInfo( (LPWSTR)bstrFilePath, //버전을 알고자 하는 파일의 경로 dwHdlDest, dwSi.. 2011. 10. 25.
유니코드 <--> 멀티 바이트 변환 // 유니코드 -> 멀티바이트 errno_t wcstombs_s( size_t *pReturnValue, char *mbstr, size_t sizeInBytes, const wchar_t *wcstr, size_t count ); // 멀티바이트 -> 유니코드 errno_t mbstowcs_s( size_t *pReturnValue, wchar_t *wcstr, size_t sizeInWords, const char *mbstr, size_t count ); //예제 코드 size_t convertSize = 0; wcstombs_s(&convertSize, mbsFileName, wcslen(strFilePath) + 1, strFilePath, MAX_PATH ); /// 위 방법은 한글변환 불가 .. 2011. 10. 25.
Dialog 를 캡쳐하여 인쇄하기 int nWidth, nHeight; CClientDC dc(this); //this->pImgWnd CDC MemDC; MemDC.CreateCompatibleDC(&dc); CRect rect; GetClientRect(rect); nWidth = rect.Width(); nHeight = rect.Height(); CBitmap BMP; BMP.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height()); CBitmap* pOldBitmap = MemDC.SelectObject(&BMP); MemDC.BitBlt(0, 0, nWidth, nHeight, &dc, 0, 0, SRCCOPY); /* SECJpeg* jpg = new SECJpeg(); jpg->.. 2011. 10. 25.
반응형