[Visual C++] 여러 개의 리소스 파일 및 헤더 파일 사용 하기

이번 글에서는 여러개의 리소스 파일과 헤더 파일을 사용하는 방법을 알아보고 이것으로 무엇을 할 수 있는지 알아보겠습니다. Resource.h 와 .rc파일 리소스는 프로그램 사용자에게 정보를 제공하는 인터페이스 요소입니다. 비트맵, 아이콘, 커서 등등 모두 리소스 말합니다. 이러한 리소스는 리소스 뷰와 편집기를 통해 수정할 수 있으며, Visual C++ 마법사에서 자동으로 생성 및 수정을 해줍니다. 프로젝트 내에서 리소스 파일은 여러 … Read more

[Visual Studio] Setup 프로젝트 만들기

이번 글에서는 Visual Studio에서 Setup Project를 이용하여 설치 파일을 만들어보겠습니다.아래 순서대로 작업하시면 기본적인 설치 파일이 만들어집니다. ‘솔루션 우클릭’->’추가’->’새 프로젝트’를 선택하여 ‘Setup Project’ 선택합니다. ‘프로젝트 이름 입력’ 후 ‘만들기’ 버튼 클릭합니다. 정상적으로 생성 되었으면 아래와 같이 Setup Project가 생성되고, File System 뷰를 볼 수 있습니다. File System에 있는 3개의 폴더의 의미는 다음과 같습니다. Application Folder 설치 … Read more

[Visual Studio 2019] 빌드 이벤트 사용하기

Visual Studio 2019 에서 빌드 이벤트에 대해 알아보겠습니다. 빌드 이벤트는 개발할 때 보단 배포, 혹은 유지보수 할 때 용이한 기능입니다.문자 그대로 빌드에 대한 이벤트이고, 프로젝트를 우클릭 하여 속성(Alt + Enter)에서 구성 속성 -> 빌드 이벤트에서 설정 할 수 있습니다. 빌드 전, 링크 전, 빌드 후 이벤트 중에서 빌드 후 이벤트를 많이 사용하니, 빌드 후 이벤트에서 명령줄을 입력해보겠습니다.우선 자주쓰는 … Read more

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

오늘은 문자열을 쉽게 2진수, 10진수, 16진수로 변경할 수 있는 _tcstol 함수에 대해 알아보겠습니다. 함수 원형은 아래와 같습니다. 오버플로우가 되면 LONG_MAX또는 LONG_MIN이 반환됩니다.3번째 인자(진수)가 2보다 작거나 32보다 크면 ERANGE , EINVAL을 반환합니다.해당 함수는 변환이 불가능하면 0을 반환합니다.  사용 예제는 아래와 같습니다. 필요 헤더파일은 아래와 같습니다. Routine Required header _tcstol <tchar.h> strtol <stdlib.h> wcstol <stdlib.h> or <wchar.h> _strtol_l <stdlib.h> _wcstol_l <stdlib.h> or … Read more

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

가끔 프로그램을 만들다 보면 코드상으론 한글을 잘 표시했는데, 실행시켜보면 한글이 깨져있는 경험들이 있을겁니다. 프로그램뿐만 아니라 파일에서도 분명히 한글로 저장했는데 메모장으로 열었을 때 한글이 저장되어있지 않은 경우도 있구요. 최근엔 프로젝트 생성하더라도 유니코드로 기본 설정 되는데 가끔 개발을 하다보면 멀티바이트, 와이드캐릭터 등 이야기를 할 때가 있습니다. 초기에 컴퓨터가 만들어졌을 때엔 컴퓨터는 단어 그대로 compute, 수치 연산을 하기 … Read more

[Visual C++] CToolTipCtrl 사용법

오늘은 ToolTip에 대해 알아보겠습니다. 툴팁이란 아래와 같이 컨트롤에 마우스 오버를 하면 설명 문구가 나오는 것을 말합니다.해당 기능은 버튼이라던지, 어떤 컨트롤에 대한 표시 설명이나, 컨트롤의 작업에 대한 설명을 적기도합니다. MFC 프로젝트 생성 후 대화상자 헤더파일에 아래와 같이 멤버변수를 선언해주세요. OnInitDialog에 아래와 같이 코딩합니다. 이 상태로 빌드 후 실행하면 해당 컨트롤에 마우스 오버를 하면 툴팁이 표시됩니다. 간단하죠?툴팁은 … Read more

[Visual C++] dll 에러 해결 방법 – mfc140u, VCRUNTIME140.dll 등등

개발자가 아니더라도, 일반 사용자들이 컴퓨터를 사용하다 보면 mfc140u.dll 등의 dll이 없다고 에러가 나타납니다. 이럴 때 참 난감합니다. 어찌어찌 인터넷 상에서 mfc140.dll, VCRUNTIME140.dll을 다운받아도 또 다른 dll이 없다고 하거나 정상적으로 실행 되지 않죠. 이 오류들은 대체 무엇일까요? 그리고 어떻게 하면 해결할 수 있을까요? 우선 해결 방법부터 알려드리자면 여기에서 Visual C++ 재배포 가능 패키지를 설치하면 해결 될 … Read more

[Visual C++] 서울시 열린데이터 광장 Open API 이용하기 – 4. XML 파싱 (tinyxml)

마지막으로 오늘은 서울시 열린데이터 광장에서 XML데이터를 받아 파싱하는 방법을 알아보겠습니다.처음 보시는 분은 여기를 참고 바랍니다. XML 파싱을 위한 클래스는 tinyxml을 사용하려 합니다. 아래 파일은 제가 MFC에 빌드가 되게 약간 수정한 파일이므로 아래 파일 다운 받으셔서 그림과 같이 프로젝트에 추가해주시기 바랍니다. 원본은 여기서 다운로드 하시면 됩니다. 그리고 아래 헤더파일을 include 합니다. 이번 글에서는 이 링크로 테스트 … Read more

[Visual C++] 서울시 열린데이터 광장 Open API 이용하기 – 3. json 파싱 (jsoncpp)

오늘은 저번 글에 이어서 json을 파싱하는 법을 알아보겠습니다. 우선 json 파싱을 위해 아래 파일을 다운로드 합니다. 압축 해제 후에 파일들을 어제 만들었던 프로젝트에 추가합니다. jsoncpp는 깃허브에서도 다운 받을수 있습니다근데 이게 잘 안되서 제가 찾은 것중에 MFC에서 되게 제가 일부 수정했습니다. 아무튼 프로젝트 추가하시고 아래와 같이 헤더파일을 include 합니다. 어제 코드에 이어서 아래와 같이 입력합니다. 이 … Read more

[Visual C++] 서울시 열린데이터 광장 Open API 이용하기 – 2. json, xml 받아오기(CInternetSession, HttpSendRequest)

이 글을 보기 전에 이전 글 먼저 봐주시기 바랍니다. 저번 글에 이어서 오늘은 json과 xml을 받아오는 방법을 알아보겠습니다.총 두 가지 방법이 있는데 두 가지 방법 다 알아보겠습니다. MFC 프로젝트를 하나 생성해 주시고  아래와 같이 컨트롤을 배치해 놓습니다. URL 우측 에디트 박스에 아래 그림과 같이 URL을 입력할 예정입니다. 빨간색은 제 인증키입니다. 1. CInternetSession 첫 번째 방법은 CInternetSession을 … Read more