MFC 시작 및 종료

유혜정·2022년 4월 12일
0

헤더파일

// 기존 콘솔 응용 프로그램에서 사용하는 헤더파일
#include <iostream>
using namespace std;
// mfc에서 사용하는 헤더 파일
#include <afxwin.h>

진입점

// 콘솔 응용프로그램의 진입점 : main
int main(int argc, char** argv) {
	return 0;
}
// 윈도우 응용프로그램의 진입점 -> C style
BOOL WinMain(...) {
	return 0;
}
// 윈도우 응용 프로그램 클래스로 사용하는 경우
//CWinApp : 응용프로그램을 담당하는 클래스
class CMyApp : public CWinApp {
public:
	virtual BOOL InitInstance() override{ // 진입점 : 시작함수
		return FALSE;
	}
	virtual int ExitInstance() override { // 종료시점
		return 0;
	}
};
CMyApp theApp; // 전역 객체 생성

문자

		// char : 1byte
		// wchar_t : 2byte

		char* p1 = "Hello World";
		wchar_t* p2 = L"Hello World";
		// MFC는 기존과 다른게 2가지 문자 타입을 가짐

#ifdef _UNICODE
	#define TCHAR wchar_t
#define _T(str) L(str)
#else
	#define TCHAR char
	#define _T(str) str
#endif // _UNICODE
	// 내부적으로 구성되어 있음
		TCHAR* p1 = _T("Hello World");
		// _UNICODE 일때 : wchar_t* p1 = L"Hello World";
		// 일반적일 때 : char* p1 = "Hello World";
		// 
		// unicode 설정 : 속성 - 고급 - 문자 집합 - 유니코드 문자 집합 사용
		// 그외 설정 : 속성 - 고급 - 문자 집합 - 설정 안 함 / 멀티바이트 문자 집합 사용

문자열

		//char* str;
		//char str[]; //-> LPSTR
		// L : long(아무의미없음) / P : pointer / STR : string
		// near pointer (64K) -> 현재는 사라짐
		// long pointer (64K 이상)
		
		// const char* // -> LPCSTR
		// L : long(아무의미없음) / P : pointer / C : const / STR : string

		//wchar_t* wtsl;
		//wchar_t wstr2[]; // -> LPWSTR
		// L : long(아무의미없음) / P : pointer / W : wide / STR : string

		// LPCTSTR : const char*, const wchar_t*
		// LPTSTR : char*, wchar_t*

		/*long LONG
		short SHORD
		unsigned short WORD
		unsigned int DWORD;*/

		//AfxMessageBox(L"hello world"); // unicode
		//AfxMessageBox("hello world");  // ansi code
		AfxMessageBox(_T("hello world")); // MFC 함수 (Win32API로 짜져있음)

		//::MessageBox(); // Win32API 버전 template
		//::MessageBoxW(); // Win32API 버전 -> unicode
		//::MessageBoxA(); // Win32API 버전 -> ansi code
		// unicode와 ansi code가 따로 구현되어 있음

개발자를 위한 코드

#define IN
#define OUT
// 의미는 없지만 개발자가 이해하기 쉽도록 한 코딩방식

int sum(IN const int a, IN const int b);
int sum(const int a, const int b);

void sum(OUT const int a, OUT const int b);
void sum(const int a, const int b);
AfxMessageBox(_T("hello world"));

::MessageBox(NULL, _T("hello world"), _T("step2"), MB_OK)

profile
내가 시작한 공부, 공유할 코드

0개의 댓글