2009년 7월 29일 수요일

CString ASCII 변환 Key 찾기

 

CString을 한글자씩 잘라내 char* 로 변환 __toascii를 사용 ASCII로 변환

Key 13의 수량을 찾아 Enter key 를 확인한다.

 

CString strcomment;

 

for(int nSize = 0 ; nSize < strcomment.GetLength() ; nSize++)
 {
   CString strTemp = strcomment.Mid(nSize, 1);
   char* chrTemp;
   chrTemp = (LPSTR)(LPCTSTR)strTemp;
   int iAscii = __toascii(*(chrTemp));
   if(iAscii == 13)
    nCount = nCount+1;
 }

2009년 7월 28일 화요일

CDC 배경 삭제 이미지

 

dc 의 특정 색을 배경으로 삭제하고 사용 할 때

 

/// CRect rect  : DC rect

/// barSize : memDC. Size

/// COLOREEF : rgbBKColor (RGB 0, 0, 0) 배경 색상

 

 

pDC->TransparentBlt(rect.left, rect.top, rect.width(), rect.hight(), &memDC, 0, 0, barSize.cx, barSize.cy, rgbBKColor);

CDC bitmap Image 사용

DC에 그린 내용을 bit map Image 로 변환하여 제어한다.

 

CDC* pDC = GetDC(); /// 화면 DC

 

CDC memDC;

memDC.CreateCompatibleDC(pDC);  /// 메모리 DC

 

HBITMAP memBM = ::CreateCompatibleBitmap(pDC->m_hDC, stSize.x, stSize.y); /// Bitmap 생성

SelectObject(memDC, memBM);  /// 메모리 DC 에 Bitmap 적용

 

memDC.FilsolidRect(0, 0, stSize.x, stSize.y, RGB(200, 200, 200) ); /// 메모리 DC 에 그리기

 

pDC->SetStretchBltMode(COLORONCOLOR);  /// Color 변경없이

/// 이미지 늘리기

pDC->StretchBlt(10, 10, stSize.x-10, stSize.y-10, &memDC, 0, 0, m_stSize.x, stSize.y, SRCCOPY  );

 

/// 생성 객체 소멸

DeleteObject(memDC);

DeleteObject(memBM);

ReleaseDC(pDC);

2009년 6월 23일 화요일

프로세스 실행 경로

프로그램이 실행하는 경로를 찾아온다.

 

프로그램이 실행될때 상대 경로를 사용하게 되면 주 실행되는 프로세스에 해당하는 위치점부터 경로가 시작되게 된다.

 

이때 다른 프로세스가 실행되면 기존에 사용하던 프로세스의 경로를 잃게 된다.

 

프로세스가 실행되는 위치점부터 경로를 찾기 위해 사용한다.

 

TCHAR szBuffer[MAX_PATH];
 int nPathLengh = GetModuleFileName(NULL, szBuffer, MAX_PATH);
 CString strTemp = (LPTSTR)szBuffer;
 int nFindcount = strTemp.ReverseFind('\\');
 strTemp = strTemp.Left(nFindcount+1);

상대 경로로 설정된 파일은

 

파일을 읽고 쓸때 실행되는 프로그램의 경로에 따라 파일을 못찾는 경우가 발생한다.

 

그때는 파일이 위치하고 있는 절대경로로 바꾸어 실행하면 된다.

 

실행중인 프로그램의 절대 경로를 얻는다.

 

 

DWORD GetModuleFileName(
  HMODULE hModuleLPTSTR lpFilenmae,  DWORD nSize

);

 

TCHAR szPath[MAX_PATH]; /// 저장될 파일 경로 (실행된 프로그램의 파일 이름까지 저장)
   
    if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )
    {
        printf("GetModuleFileName failed (%d)\n", GetLastError());
        return FALSE;
    }

 

 CString strTemp = (LPTSTR)szPath;

 int nFindcount = strTemp.ReverseFind('\\'); /// 뒤의 마직막에 위치한 파일명까지의 String 수

 strTemp = strTemp.Left(nFindcount+1); /// 왼쪽 부터 짤라내기 (파일 이름 제외)

 

출처 : MSDN 2006, 10


 

출처 : Tong - 공원님의 ┣ ★ 먹고사는일(VC++)통

2009년 6월 19일 금요일

.bat 파일 만들기

.bat 파일은 도스상의 명령어를 조합하여 간편이 실행 하도록 만든 배치 파일

 

파일 만들기

1) 파일 이름.bat 파일을 새로 만든다

2) 필요한 명령을 1)에서 만든 파일에 저장한다.

3) 파일 이름.bat 파일을 실행한다.

얼마나 간단한가

 

사용되는 명령어를 간단히 정리하면

@ 이후 내용은 내용 표시 않됨

@echo off : 실행 내용 표시 않됨

@eocho : 실행 내용 표시

 

@Net Use : 네트워크 딜렉토리 설정

연결 예 :  P: IP\D$  /User:사용자ID /Persistent:NO (연결드라이브:연결할 IP와 드라이브 패스워드/사용자  ID /

연결 해제 예 :  P: IP\D$ /delete (연결드라이브:연결한 IP와 드라이브/ 취소)

 

@Path : 환경 설정

@path = %PATH%; 패스경로명 (기존에 있던 패스 실행 후 래로운 패스경로 실행)

 

출처 : Tong - 공원님의 ┣ ★ 알아두면 편리한 것통

2009년 6월 16일 화요일

drwtsn 닥터와슨 설정

닥터와슨은 셀록홈즈를 따라 다니는 의사의 이름이다.

 

홈즈가 의문의 사건을 해결할때 옆에서 도움도 주고 조언도 해주는 ^^

 

프로그램에도 셀록홈즈의 와슨의사와 같은 역할을 해주는 프로그램이 있다.

 

이프로그램은 exe 파일내용을 검사하여 덤프 또는 오류가 난 펑션이나 파라미터를

 

정리해 파일로 보여준다..

 

약간의 설정만 하면 ^^ 쉽게 사용 가능하다..

 

우선 실행에서 와슨을 실행한다.

 

1. drwtsn32.exe 을 실행

2. 로그파일 경로 및 덤프 경로를 설정한다.

 심폼/스레드 등 선택하고 크래시 덤프 파일을 만든다.

 

3. 실행에서 drwtsn32.exe -i 을 이용하여 설정하면 끝..

 

릴리즈 모드에서도 덤프를 확인 할수 있어서 편하게 확인 할 수 있다.

 

 

 

2009년 6월 12일 금요일

Doxygen 1.5.9 한글 설정

Doxygen 을 한글로 설정하는 방법입니다..

 

기존에 사용하는 1.5.0 또는 1.5.7 버젼은 한글이 잘 나왔는데

 

1.5.9 부터는 한글이 깨지는 경우가 있습니다.

 

기본 설정이 UTF-8 로 되어 있어 그런데요.. UTF-8이 있는 부분을 EUC-KR 로 변환해주면 됩니다.

 

 

1. Export /Project 설정

Doxyfile_encodeing : UTF-8 => EUC-KR 로변경

Output_Language : Korean-en 선택

 

2. Export /Input 설정

Input_Language : EUC-KR 로변경

 

이렇게 설정하면 HTML 로 보는 내용은 한글이 않깨질 꺼여요 ^^