본문 바로가기
반응형

C & C++444

CPU 사용률 알아오기 레지스트리내의 HKEY_DYN_DATA내의 KERNEL\\CPUUsage의 StartStat를 읽어들인후, 같은 방식으로 StatData를 접근하면 CPU의 사용률을 알 수 있습니다. 이런방식으로 다음과 같은 코드로 접근할 수 있습니다. HKEY hKey; DWORD dwType=REG_DWORD; DWORD dw=4; DWORD dwDust; char *pszRegKey="KERNEL\\CPUUsage"; int nCPUUsing; // 이변수에 사용률이 저장됩니다. ::RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\\StartStat", 0, KEY_READ, &hKey); ::RegQueryValueEx(hKey, pszRegKey, 0L, &dwType, (unsigned .. 2012. 6. 12.
OS 버전 알아오기 현재 OS를 알아내어 그에 맞는 설정 및 실행, 설치를 하려고 할 때, 버전을 알아내는 방법은 다음과 같습니다. MFC 상에서 OS의 버전정보를 알아오려면 GetVersion() (or GetVersionEx() )함수를 쓰면 되는데, 예를 들면, DWORD dwVersion = ::GetVersion(); DWORD dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion))); DWORD dwWindowsMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion))); if(dwWindowsMajorVersion < 5) { } 이런 식으로 사용할 수 있겠습니다. 메이져버전과 마이너버전이 있는데, 6.1 : Major=6, Minor.. 2012. 6. 12.
SHGetSpecialFolderPath() - 윈도우 특별한 폴더 경로 SHGetSpecialFolderPath() - 윈도우 특별한 폴더 경로 바탕화면, 즐겨찾기, 내 문서 등의 패스얻기 1.요약 SHGetSpecialFolderPath()를 이용하여 윈도우에서 사용하는 특별한 폴더들의 패스를 얻어오는 방법을 설명합니다. 2.본문 SHGetSpecialFolderPath()를 이용하면 윈도우에서 사용하는 특별한 폴더들의 패스를 얻어올 수 있습니다. 파라미터는 윈도우 핸들, 폴더이름을 복사할 버퍼, 패스 플래그, 생성 플래그입니다. 세번째와 네번째는 각각 얻고자하는 패스를 지정하는 플래그와 만약 폴더가 없다면 생성할 것인지를 지정하는 플래그입니다. 네번째 플레그가 NULL(0)이 아니고 폴더가 없다면 폴더를 생성합니다. 세번째 플래그는 다음과 같은 폴더를 지정합니다.(MSD.. 2012. 6. 12.
유니코드 형식 문자열 [ xxx.TEXT ] 로 출력하기 1. Intro 테스트로 작성한 프로그램을 여러 OS에서 제대로 작성하는지 테스트 해야했다. 해당 OS에서 많은 문자열을 뽑아서 확인해야 했는데 OS마다 Visual Studio 를 설치 해서 디버깅할 수는 없고, 텍스트 파일로 만들다 보니 한글 출력에 문제가 있었다. 자료를 검색해 봤는데 유니코드를 파일에 쓸 때 몇가지 주의해야 할 점이 있었다. 완벽하게 이해한 것은 아니지만 정리해 본다. 2. 문제 의식 개발 언어 : C++,MFC 개발 도구 : Visual Studio 2008 SP1 CFile 클래스를 이용하여 "log.txt" 파일을 만들었다. 해당 파일에 문자열을 입력하였는데 한글은 깨져서 출력 되었다. 3. 유니코드 문자를 텍스트 파일로 저장할 때 주의해야 할점 - 파일에 유니코드를 관리할 .. 2012. 6. 8.
String Token MFC 프로그램 처리시 가끔 문자열에 대해 Token 처리해야 하는 경우가 발생합니다. 이때 token을 위한 buf를 만들고 해제하는 과정이 아주 귀찮습니다.. 이때 사용할수 있는 초 간단 Token 처리 API입니다. CString strOrg; CString strTok_1; CString strTok_2; CString strTok_3; strOrg.Format("%s", "123$456$789"); AfxExtractSubString( strTok_1, strOrg, 0, '$'); AfxExtractSubString( strTok_2, strOrg, 1, '$'); AfxExtractSubString( strTok_3, strOrg, 2, '$'); strTok_1에는 "123"이 strTok.. 2012. 3. 10.
Toolbar & Menu //ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ//ㅡ,ㅡ CToolBar m_toolbar; m_toolbar.Create(this); m_toolbar.LoadToolBar(IDR_TOOLBAR1); m_toolbar.SetBarStyle(m_toolbar.GetBarStyle() | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); CRect rect; GetClientRect(&rect); m_toolbar.MoveWindow(0,0,rect.right, 30); 이렇게 해서 생성한다음에.. 나중에 바꿀때는.. void CTest1Dlg:.. 2012. 2. 9.
반응형