IT-개발(156)
-
[펌] C/ C++ 전처리 - #if #else #elif #endif 등등...
(펌) : http://egloos.zum.com/judoboyjin/v/4545100 #ifdef, #ifndef는 매크로의 존재 여부만으로 컴파일 조건을 판단하며 매크로가 어떤 값으로 정의되어 있는지는 평가하지 않는다. 이에 비해 #if는 매크로의 값을 평가하거나 여러 가지 조건을 결합하여 컴파일 여부를 결정하는 좀 더 복잡한 전처리문이다. #ifdef보다는 사용법이 조금 까다롭지만 C 언어의 조건문과 유사하므로 쉽게 익힐 수 있다. 기본 형식은 다음과 같다. #if 조건1 코드1 // 조건1을 만족하면 코드1을 컴파일 #elif 조건2 코드2 // 조건 2가 만족되면 코드2를 컴파일 #else 코드3 // 둘 다 맞지 않으면 코드 3을 컴파일 #endif C 언어의 if .... else if ....
2017.05.17 -
format 숫자 출력하기
C 언어에 long long(아주 긴 정수) 타입과 long double 타입이 추가되었지만 이를 출력하는 방법을 몰라서 제대로 사용하지 못하는 경우가 있다. printf에서 이를 출력하려면 각각 %lld, %lf를 사용하면 된다. long 타입 값은 %ld로 출력하면 된다. 구체적인 예를 보이면 다음과 같다.#include int main() { long ln = 123456789L; long long lln = 1234567890123456789LL; double dx = 1.234567890123456789; long double ldx = 1.234567890123456789L; printf("ln = %d\n", ln); printf("ln = %ld\n", ln); printf("lln = %..
2017.05.11 -
MFC Class 이름 변경
(펌) https://www.codeproject.com/Articles/196354/Provide-Your-Custom-Class-Name-to-your-MFC-Applica 위 예제는 SDI, Dialog base 2가지에 대해서 있다. 그중에 SDI 쪽은 정상적으로 Class Name이 변경 되고 build해서 실행되지만, Dialog Base 쪽은 정상적으로 동작 하지 않더라. MFC 로 만든 프로그램의 Class를 변경할 일이 자주는 없는데, 간혹 있더라... 필요할때, 잘 적용하길~, 핵심 코드는 아래에 추가 (SDI) BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){if( !CFrameWnd::PreCreateWindow(cs) )return FAL..
2017.03.10 -
파일이동 - sample - SHFileOperation
폴더 들을 포함한 파일들 전체의 무조건 이동, 동일 폴더 명이 보이면 그냥 합침. string strPreNetLinkDownPath = "C:\DDD"; string strNextNetLinkDownPath = "C:\AAA"; // C:\AAA\DDD 라는 폴더가 이미 있음. SHFILEOPSTRUCTshfo;TCHARpszTo[1024] = {0,}; // 이렇게 따로 Buffer를 잡아서 처리해주지 않으면 이상하게 동작않함.TCHARpszFrom[1024] = {0,};TCHARpszTitle[MAX_PATH] = _T("파일이동");memset(pszTo, 0, sizeof(pszTo));memset(pszFrom, 0, sizeof(pszFrom)); _tcscpy(pszTo, strNextN..
2017.03.03 -
OS - x64 - GetSystemDirectory (펌)
모르고 있었네요~ ㅠㅠ.. 이런 중요한 정보를.. 그래서 msdn에서 가져온 좋은 예제도 곁들입니다. (펌) : system32폴더와 syswow64폴더 64비트 윈도우즈에서 GetSystemDirectory 함수를 호출하면 어떤 결과가 나올까. 만약 32비트 프로세스에서 실행을 한다면 c:\windows\system32 가 나오게 된다.그리고, 64비트 프로세스에서도 마찬가지로 c:\windows\system32 가 나오게 된다. 하지만 이건 같은것이 아니다.32비트 프로세스에서 c:\windows\system32 폴더에 뭔가를 쓰게 되면 실질적으로는 c:\windows\syswow64 폴더에 써지게 된다. 즉, 내부적으로 저렇게 리다이렉트가 되는 것이다. 경로를 코드상에 c:\windows\syste..
2017.02.22 -
Window Version 구하기
msdn에 현재까지 MS에서 발매한 OS 버전 정보가 간단히 있다.https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms724832(v=vs.85).aspx 그러나 SDK를 동원 / 제공되는 api를 호출해도 현재 윈도우 버전 정보가 쉽게 구해지지 않더라. GetVersionEx 를 사용하면, 정상적인 윈도우 버전 정보가 나오질 않더라. 윈도우10 에 대해서 6.3 으로 나온다. Window 8.1 로 판단하더라~ BOOL GetWindowVersion(DWORD & dwMajorVersion, DWORD & dwMinorVersion, DWORD & dwPlat ){LPWKSTA_INFO_100 pwi = NULL;if ( NERR_Success ==..
2017.02.16