티스토리 뷰
지금 버전은 Visual Studio 2019이다.
구글에 Visual Studio 검색 후 다운로드 링크 클릭
무료 버전인 커뮤니티를 다운 받습니다.
다운로드한 설치 파일을 더블 클릭하여 실행합니다.
저는 윈도 프로그램을 개발 하기 위해 닷넷과 C++을 선택했습니다.
여기서 MFC를 개발을 하기 위해서는 위 그림처럼 C++선택 후에 위에 오른쪽 빨간 박스에 체크를 하고
각자 필요한 도구들을 선택 후 설치를 누릅니다.
저는 2017이 설치되어 있어 설치 목록에 보이네요.
설치 완료 후 시작이 되었습니다.
MS 계정이 있다면 로그인을 하고 나중에 로그인을 눌러
계속 진행해도 됩니다.
MFC앱을 선택 후 다음을 누릅니다.
프로젝트 이름을 적고 만들기 버튼을 클릭합니다.
만들기 버튼을 누르고 나면 MFC를 어떻게 만들 것인지를 선택하는 부분입니다.
간단하게 버튼을 만들고 버튼을 누르면 Hello world라는 메시지가 나오도록 만들 것이기 때문에 대화 상자 기반으로
선택을 합니다. 그리고 아래 MFC 사용 부분에서는 공유 DLL, 정적 라이브러리 이 두 가지를 고르는데 개발 후 컴파일을 하고 실행파일 exe 만으로도 실행을 시킬 수 있게 정적 라이브러리에서 MFC사용을 선택했습니다.
단점은 exe파일 용량이 조금 커질 수 있습니다. 그래도 dll파일들 없이 단일 실행 파일만 있으면 되기 때문에 편합니다.
자 마침 버튼을 누르면 프로젝트가 생성이 됩니다.
오른쪽 솔루션 탐색기에 소스들이 쭉 나와 있어서 복잡해 보일 수도 있지만 우리는 Dlg.cpp라고 적혀 있는 파일만 보면 됩니다.
나중에 어느 정도 적응이 되고 나면 다른 파일들도 사용하게 됩니다. 자 HelloMFCDlg.cpp 파일을 더블 클릭을 해서 열어 봅니다. 또 복잡한 소스가 보이지만 그냥 다 무시하고 실행을 한번 해봅니다.
Ctrl + Shift + B 키를 눌러 빌드를 합니다.
========== 빌드: 성공 1, 실패 0, 최신 0, 생략 0 ==========
이라는 메시지가 나오면 Ctrl + F5번 키를 눌러 실행을 시켜 봅니다.
실행이 잘된다면 윈도 첫 프로그램이 완성이 되었습니다. 저렇게 떠 있는 프로그램을 다이얼로그라고 부릅니다.
자 이제 우리는 저 다이얼로그 창에 기존에 있는 컨트롤들을 다 지우고 가운데 버튼을 하나 만들어 봅니다.
X 버튼을 눌러 종료 후 설루션 탐색기에 가서 리소스 뷰의 탭을 선택합니다.
리소스 뷰 탭을 누르면 Dialg라는 폴더가 나오는데 열어서 왼쪽 그림에서 HELLOMFC_DIALOG라고 적혀있는 파일을 더블 클릭을 해서 열어 봅니다.
그러면 아까 우리가 실행을 해봤던 프로그램 창 디자인이 나옵니다.
이제 우리는 여기서 폼 디자인을 하면 됩니다.
안에 있는 글자와 버튼들을 선택 후 del키를 눌러 삭제합니다.
다이얼로그 폼을 다 지웠으면 왼쪽에 도구 상자라는 탭을 열면 저기 폼 안에 사용할 수 있는 도구들이 쭉 나옵니다.
버튼을 만들 것이기 때문에 버튼을 드래그하여 오른쪽 폼에 한번 놓아 봅니다.
이런 식으로 버튼이 생성이 됩니다.
이제 이 버튼의 크기와 버튼 이름을 바꿔 볼게요.
버튼은 검은 점을 잡고 늘리면 됩니다.
버튼이 선택이 되어 있는 상태에서 왼쪽에 하단을 보면 속성 창이 보입니다. 여기에서 아래로 내려 보면 Caption이라고 적혀 있는 부분이 저기 버튼에 글자 내용을 나타 내는 부분입니다.
저기 내용을 클릭하세요 이라는 글자로 바꿔 봅니다.
바꾼 후 저 버튼을 더블 클릭을 해봅니다.
소스가 열리면서 자동으로 버튼에 대한 함수가 생성이 되었습니다.
이제 초록색 글자 부분에 우리는 Hello World라는 글자를 띄우기 위해 코드를 작성합니다.
간단하게 메시지 박스가 뜨게 만듭니다.
초록색 글자는 주석입니다. 설명문에 해당하고 코드에 영향은 주지 않습니다.
일단 지워 줍니다.
Mess 입력을 해보면 자동완성으로
MessageBox라는 것을 선택합니다.
MessageBox() 안에 파라미터가 3개가 들어가는데 첫 번째 말고는 2번째 3번째는 디폴트 값이 있습니다.
파라미터 한 개만 넣어도 됩니니다. MessageBox( 안에 문자열 )을 넣어 볼게요.
MessageBox("Hello World");
const char * 형식의 인수가 "LPCTSTR"형식의 매개 변수와 호환되지 않습니다.
이런 오류가 뜨네요.
이렇게 오류가 뜨는 것은 윈도에서 한글을 쓸 때 유니코드로 쓸 것인지 멀티 바이트로 쓸것인지
선택을 하게 되어 있는데 보통 컴파일 옵션으로 바꿀 수 있습니다.
유니코드로 컴파일이 되었다면 문자열 앞에 L을 써줘야 하고 멀티 바이트면 L을 빼줘야 합니다.
영어만 쓰면 괜찮지만 여러 언어들을 지원해야 되기 때문에 우리는 한글을 사용하기 때문에
유니코드든 멀티 바이트이던 오류가 없이 실행이 되게 할 수 있는데
내부 적으로
tchar.h 에 전처리로 UNICODE에 따라
#define __T(x) L##x
#define __T(x) x
#define _T(x) __T(x)
#define _TEXT(x) __T(x)
선택하게 되어 있습니다.
이렇게 정의가 되어 있습니다. L을 붙이고 빼주고 해주는것에서
자유롭게 문자열을 사용하려면 _T("문자열") 또는 _TEXT("문자열") 이런 식으로
사용하면 됩니다.
MessageBox(_T("Hello World")); // 이렇게 작성하면 되겠네요.
Ctrl + Shift + B 키를 눌러 빌드를 합니다.
다이얼로그를 수정을 하면 이런 메시지가 뜨는데
덮어쓴다고 예를 선택하고 빌드를 시작합니다.
========== 빌드: 성공 1, 실패 0, 최신 0, 생략 0 ==========
이라는 메시지가 나오면 Ctrl + F5번 키를 눌러 실행을 시켜 봅니다.
Hello World 가 잘 뜨면
자 우리가 처음으로 만들어 본 윈도우 프로그램이 되겠네요.
'SW' 카테고리의 다른 글
[JAVA] StreamTokenizer 를 이용한 파서(Parser) (0) | 2020.04.25 |
---|---|
[JAVA] while 문을 사용해서 십의자리(10)와 일의 자리(1)가 같은 수 출력 하기 (0) | 2020.04.18 |
[javascript 자바스크립트] Prompt 를 이용하여 숫자 입력 받고 출력 하기 (0) | 2020.04.15 |
[파이썬] 문자열과 숫자가 붙어 있고 연속된 숫자 분리(연속된 수의 경우 ~ 표시) (0) | 2020.04.15 |
[스케줄링 알고리듬(Scheduling algorithm)] FCFS 스케줄링(First Come First Served Scheduling) 프로그램 구현 (0) | 2020.04.15 |
- Total
- Today
- Yesterday
- 도커
- oracle
- 웹앱 프로그래밍
- flask
- WEB
- Cloud
- 클라우드
- 웹앱
- GCP
- HTML
- 자바스크립트
- mysql
- docker
- 부트스트랩
- 오라클
- Hello World
- 플라스크
- 파이썬
- DB
- python
- nginx
- pythonanywhere
- javascript
- Java
- Visual Studio
- github
- 리눅스
- 자바
- GIT
- 웹앱프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |