[MFC강좌] 폴더 파일 경로 5. PathSkipRoot 등 16개 함수 void PathSetDlgItemPath( HWND hDlg, int id, LPCSTR pszPath ); PathCompactPath와 유사하다. id로 지정된 Dialog Item에 출력하기 적합한 길이로 경로를 잘라준다. LPCTSTR PathSkipRoot( LPCTSTR pszPath ); 루트 경로를 제거한다. 로컬 경로인 경우 드라이브문자(c:\)가 지워지고, UNC 경로인 경우 서버 이름, 공유 폴더 이름이 제거된다. PathSkipRoot( "c:\temp\test.txt") = temp\test.txt PathSkipRoot( "\\server\c$\temp\test.txt") = temp\test.txt v..
[MFC강좌] 폴더 파일 경로 4. PathParseIconLocation 등 10개 함수 int PathParseIconLocation( LPTSTR pszIconFile ); pszIconFile에 파일 경로와 아이콘 인덱스가 포함된 경우 이를 적절하게 분리해 준다. pszIconFile에는 경로가, 아이콘 인덱스는 반환 값으로 나오게 되며, pszIconFile은 "경로, icon index" 형식이어야 한다. BOOL PathQuoteSpaces( LPTSTR lpsz ); lpsz에서 공백이 발견되면 lpsz를 큰 따옴표(")로 묶어준다. 공백이 없다면 아무 일도 하지 않고 FALSE가 반환된다. BOOL PathRelativePathTo(LPTSTR pszPath, LPCTSTR pszFrom..
[MFC강좌] 폴더 파일 경로 3. PathIsRoot 등 10개 함수 BOOL PathIsRoot( LPCTSTR pPath ); 경로가 루트 폴더(드라이브 바로 밑)인지 검사한다. PathIsRoot("c:\") = TRUEPathIsRoot("c:\windows") = FALSE BOOL PathIsSameRoot( LPCTSTR pszPath1, LPCTSTR pszPath2 ); pszPath1과 pszPath2가 같은 드라이브(루트 폴더)에 있는지 검사한다. PathIsSameRoot( "c:\test1\temp1.txt", "c:\test2\temp2.txt" ) = TRUE BOOL PathIsSystemFolder( LPCTSTR pszPath, DWORD dwAttrb ); 제시된 경로..
TCHAR -> string 변환, C++ 문자열 자료형 컨버팅 TCHAR에서 std::string으로 변환하는 예제 코드입니다. 12345678910111213const std::string TCHARToString(const TCHAR* ptsz){ int len = wcslen((wchar_t*)ptsz); char* psz = new char[2 * len + 1]; wcstombs(psz, (wchar_t*)ptsz, 2 * len + 1); std::string s = psz; delete[] psz; return s;}Colored by Color Scriptercs 위 함수 코드에 인자에 TCHAR 배열을 넘기면 string 변수가 리턴됩니다. 예를 들면 아래처럼 사용할 수 있습니다. 12..
CFileDialog, 윈도우7과 윈도우XP 호환 소스 (Modal Dialog) 아래는 CFileDialog를 이용한 Modal 소스인데 문제 될 것이 없는 평범한 소스입니다. CFileDialog를 Modal로 여는 것이죠. 1234567891011CFileDialog oFileDlg(TRUE, "bmp", "*.bmp", OFN_FILEMUSTEXIST | OFN_LONGNAMES, "BMP Files", this); oFileDlg.m_ofn.lpstrInitialDir = "C:\\"; oFileDlg.DoModal(); if(oFileDlg.GetPathName().Compare("") != 0){...........................}Colored by Color Scripterc..
[MFC강좌] CreateFont(), CFont 사용 방법 (static 폰트 변경 방법 예제) 이번 MFC강좌에선 CFont의 CreateFont() 사용 방법을 알아보겠습니다. CreateFont를 사용하기 위해선 하나의 객체를 생성한 뒤, 폰트(CFont)를 설정하기 위한 각종 인자들을 넘겨줘야 됩니다. 함수 원형은 아래입니다. 123456789101112131415CFont fntItem; fntItem.CreateFont( 15, // 문자 폭 0, // 문자 높이 0, // 문자 기울기 0, // 문자 방향 FW_NORMAL, // 문자 굵기 FALSE, // 기울기 FALSE, // 밑줄 0, // 취소선 DEFAULT_CHARSET, // 문자셋 OUT_DEFAULT_PRECIS, // ..
C언어 피보나치, C언어 구구단 소스 (C++ 호환) C언어 피보나치 소스 123456789101112131415161718192021222324#include void main(){ int i; int j; int p; int n; int t; for(i = 1; i
윈도우 메모리 관리 (WinCE, 사용량) : Oxios-Memory Oxios-Memory : WinCE 메모리 관리 툴 사이트 : Softonic - Oxios Memory [링크] 다운로드 : oxiosmemory.zip [링크] 파일을 다운 받고 압축을 풀면 아래처럼 확인됩니다. 그리고 설치 파일을 구동할 PC와 WinCE가 포팅된 장비를 연결한 뒤, OxiosMemorySetup.exe 파일을 실행해 설치 과정을 진행합니다. WinCE 메모리 사용량 관리 프로그램인 Oxios 설치를 시작합니다. 아래를 따라가세요. 완료되면 아래처럼 WinCE 메모리 사용량 관리 프로그램인 Oxios-Memory의 설치가 완료되었다는 창이 뜹니다. 위와 같은 과정을 거치면 WinCE의 "Windows\프로그램" ..
[C#] 동적메모리 할당 해제 소스 코드 예제 (malloc) 동적메모리 사용을 위한 예제가 MSDN에 있어서 퍼왔습니다. C#에서는 stackalloc 연산자라는 메모리 관리 구문이 있습니다. 그리고 가비지 컬렉터도 동적메모리 할당, 해제 구문을 갖고 있습니다. 일반적으로 이러한 서비스(동적메모리 할당 해제)는 해당 클래스 라이브러리에서 제공하거나 운영체제에 구현되어 있습니다. 아래 예제는 동적메모리 할당을 위해 운영체제의 힙 함수를 엑세스합니다. 출처 : MSDN - A.8 동적메모리 할당 [링크]파일 : Memory.cs [링크] 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152..
비주얼스튜디오2013, 먹통 되었을 때 해결 방법 (VisualStudio2013) 가끔, 서비스팩이나 Add-on 등, 다른 프로그램을 설치하고 나서 VisualStudio2013이 먹통 돼버리는 경우가 있다. 그냥 간단하게 지우고 다시 깔 수 있는 덩치의 녀석이 아니기 때문에 난감하다. 운이 좋은(?) 경우는, VisualStudio2013 - Tools - Import Export Setting- Reset All Setting을 통해 복원 가능할 때도 있지만, 이 조차도 효과가 없을 때는, 다음 절차에 따라 초기화해주면 대부분 문제가 해결된다. 출처는 어느 일본 개발자의 블로그였기에 캡처된 그림에도 일본어가 보인다. 히라가나는 몰라도 한자를 읽고 대충 때려 맞춰보면, "관리자 권한으로 실행"하라는..
[MFC강좌] 3가지 배열 예제 (CByteArray, CWordArray, CUnitArray) MFC에서 제공하는 배열들은 아래와 같습니다. Class Name - Data Type CByteArray : 8-bit bytes (BYTEs) CWordArray : 16-bit words (WORDs) CDWordArray : 32-bit double words (DWORDs) CUIntArray : Unsigned integers (UINTs) CStringArray : CStrings CPtrArray : void pointers CObArray : CObject pointers CWordArray WORD: unsigned short int [New, Delete] 12CWordArray* pA2..
JAVA JDK 설치 - 윈도우10 자바 64비트 개발 환경 설정 이전에도 윈도우에 자바 JDK(Java Development Kit)를 설치하는 포스트를 남긴 적이 있었는데, 윈도우 10으로 오면서 이것저것 많이 바뀌었다. 안드로이드 앱을 만들 일이 있어서 JDK를 윈도우 10에서 설치하려다 보니 헷갈리는 부분들이 많이 있어서 포스트를 남긴다. 윈도우 10에서 안드로이드 앱 개발을 위해 제일 먼저해야 하는 것이 JDK 설치다. JDK를 설치해야 자바 기반의 언어이자 플랫폼인 안드로이드 앱을 만들 수 있다. 이 포스트를 보는 사람들이라면 JDK가 왜 필요한지 아실 테니 상세한 설명은 생략한다. 자바 JDK, JRE 설치 ORACLE - Downloads - Java SE 페이지로 이동해 JDK를 다운로드..