Keep Going

Keep Going

[MFC] 대화상자 ClassName 변경

이번 글에서는 MFC 대화상자 ClassName을 변경하는 방법을 알아보겠습니다.Win32프로그래밍에서는 생성할때 ClassName을 설정해줘서 쉬운데, MFC는 손을 여기저기에 대야합니다. 우선 MFC 프로젝트 생성 해주신 뒤, 아래와 같이 리소스뷰에서 .rc를 클릭하면 우측에 RC노드라 하여 속성이 나타납니다. 여기서 MFC Mode를 False로 변경하셔야합니다. 그 …

시험 부정행위 방지 프로그램

대학 시절, 프로그래밍 언어 시험을 볼 때 교수님은 답안을 Visual Studio로 코딩해서 제출하라고 하신적이 있습니다.아무리 조교들이 뒤에서 감시 한다 한들, 1~2명의 조교가 100명가까이 되는 학생들의 부정행위를 막을순 없었습니다.몇몇 학생들이 인터넷을 실행하거나, 메신저를 실행해서 어떻게든 부정행위를 …

[WinAPI] Dump 파일 생성하기 – SetUnhandledExceptionFilter

프로그래밍을 하다 보면 여러 에러가 나타납니다. 문법을 틀리거나 잘못된 인자를 사용하는 등의 컴파일 에러, 링크 단계에서 나타나는 링크 에러, 프로그램 실행중 나타나는 런타임 에러가 있을 수 있습니다. 컴파일, 링크에러의 경우 보통 개발도구에서 에러 메시지를 표시하기 때문에 프로그래머가 확인하기 용이하지만(그렇다고 바로 …

[WinAPI] GetNativeSystemInfo, 윈도우 OS 몇 bit인지 확인하기

오늘은 윈도우 OS가 몇 비트인지 확인하는 함수를 알아보겠습니다.우선 내 컴퓨터 우클릭 -> 속성에 들어가면 아래와 같이 몇비트 인지 확인 할 수 있습니다. GetNativeSystemInfo함수를 사용하면 손쉽게 알아낼 수 있습니다. 함수 원형은 아래와 같습니다. 해당 함수는 최소 Windows XP, …

[C++] 함수 오버로딩(Function Overloading)

안녕하세요 이번 글에서는 함수 오버로딩에 대해 알아보겠습니다. 우선 아래 코드의 문제점을 무엇일까요? swap(&c, &d);를 보시면 double형 주소를 인자로 전달합니다. 하지만 swap 함수는 int 포인트로 인자를 받으므로 “double *”가 “int *”로 형변환이 되지 않아 에러가 생깁니다. 그렇다고 …

[C++] 다각형 내부 판별 알고리즘(Point in polygon)

안녕하세요, 이번 글에서는 다각형(Polygon)으로 도형을 그리고 클릭 했을 때, 그 클릭한 곳이 다각형의 내부인지 외부인지 판별을 하는 알고리즘 입니다. 코드를 보기전에 우선 알고리즘 설명부터 하겠습니다.아래와 같이 5각형을 기준으로 클릭을 한다고 봅시다. 다각형 내부 클릭 다각형 …

[C++] tolower, toupper 대소문자 변환

안녕하세요 오늘은, C++의 대소문자 변환하는 함수 tolower, toupper 함수를 알아보겠습니다.tolower, toupper함수는 인자로 1개의 아스키 코드 값을 전달 하면 해당 문자의 대소문자를 변환해 줍니다. 대문자 -> 소문자로 변환하는 tolower의 함수 원형은 아래와 같습니다. msdn에서는 tolower을 수행하기 …

[C++] _tcstol, strtol, wcstol 문자열 진수 변환

오늘은 문자열을 쉽게 2진수, 10진수, 16진수로 변경할 수 있는 _tcstol 함수에 대해 알아보겠습니다. 함수 원형은 아래와 같습니다. 오버플로우가 되면 LONG_MAX또는 LONG_MIN이 반환됩니다.3번째 인자(진수)가 2보다 작거나 32보다 크면 ERANGE , EINVAL을 반환합니다.해당 함수는 변환이 불가능하면 0을 반환합니다.  사용 예제는 아래와 같습니다. …

[Visual C++] 문자열에 대하여 – 유니코드, 멀티바이트

가끔 프로그램을 만들다 보면 코드상으론 한글을 잘 표시했는데, 실행시켜보면 한글이 깨져있는 경험들이 있을겁니다. 프로그램뿐만 아니라 파일에서도 분명히 한글로 저장했는데 메모장으로 열었을 때 한글이 저장되어있지 않은 경우도 있구요. 최근엔 프로젝트 생성하더라도 유니코드로 기본 설정 되는데 가끔 …