본문 바로가기
반응형

전체 글45

[Win] 파일, 폴더 링크 만들기 / junction, mklink 사용방법 파일, 폴더의 링크를 만드는 것은 쉽게 말해 파일이나 폴더의 경로를 다른 경로로 연결시켜주는 작업을 의미합니다. 예를들어 C:\Temp의 경로를 S:\Temp로 만들 수 있는 것이죠. 이걸 어디다 써먹냐고 생각하실 수도 있는데 간혹 프로젝트 설정이 특정 디렉토리에 맞춰져 있는데 내 PC에서는 그 환경을 만들기 어려운 경우 사용해 볼 수 있습니다. 이런 링크를 만드는 방법은 크게 junction.exe를 사용하는 방법과 mklink를 사용하는 방법이 있는데 junction.exe는 오류가 많아서 mklink를 사용하는 방법으로 설명드리겠습니다. ※ 파일, 폴더 링크 연결 mklink cmd(명령프롬프트)에서 mklink를 입력해보면 명령어를 확인할 수 있습니다. /D, /H, /J 3가지 종류가 있는데 각.. 2022. 12. 27.
[C++ / MFC] Visual Studio에서 msi 설치프로그램 만들기 (2) 🔽 초기 세팅에 대한 내용은 이전 챕터를 참고해주세요 [C++ / MFC] Visual Studio에서 설치프로그램 만들기 (1) 인스톨쉴드 같은 툴이 지원되는 기능도 많고 간편하긴 하지만 Visual Studio에서 확장프로그램으로 지원되는 툴도 사용해보니 기본적인 설치프로그램을 만드는데는 크게 문제가 없는 것 같아서 소 dev-drive.tistory.com ※ Installer 프로젝트 속성 ※ 사용할 만한 옵션들에 대해서만 정리해보겠습니다. 항목 설명 AddRemoveProgramIcon 프로그램 추가/제거에 표시되는 아이콘 설정 Author 회사 이름, 개인 이름 등 원작자 이름 설정 DetectNewerInstalledVersion 설치하는 동안 애플리케이션의 최신 버전을 확인할지 여부를 지정.. 2022. 12. 20.
[C++ / MFC] Visual Studio에서 msi 설치프로그램 만들기 (1) 인스톨쉴드 같은 툴이 지원되는 기능도 많고 간편하긴 하지만 Visual Studio에서 확장프로그램으로 지원되는 툴도 사용해보니 기본적인 설치프로그램을 만드는데는 크게 문제가 없는 것 같아서 소개시켜 드려볼까 합니다. 1. Microsoft Visual Studio Installer Projects 설치 비주얼스튜디오 상단 확장 > 확장 관리 메뉴를 실행하고 install을 검색하여 위 확장프로그램을 설치합니다. 2. Setup Project 추가 솔루션에서 우클릭 > 추가 > 새 프로젝트 메뉴를 선택하고 setup을 검색해서 Setup project를 추가합니다. 추가된 Setup project의 화면입니다. 일반 프로젝트와 다르게 설치 관련 설정을 할 수 있는 화면이 나타납니다. 3. Setup Pr.. 2022. 12. 20.
[C++/MFC] vcpkg를 사용해서 프로젝트에 라이브러리 세팅하는 방법 vcpkg란?vcpkg는 라이브러리 관리를 위한 C/C++ 패키지 관리 툴로, vcpkg를 이용해서 오픈소스 라이브러리를 다운로드하고 빌드해서 프로젝트에 간편하게 불러올 수 있습니다. # vcpkg 다운로드 1. 파워쉘을 관리자 권한으로 실행합니다. (cmd로 해도 상관없습니다) 2. vcpkg 저장소를 복제할 디렉토리로 이동합니다.cd s:\git clone하면 s:\하위에 vcpkg디렉토리가 자동 생성되니 폴더를 따로 만들어줄 필요는 없습니다. 3. vcpkg 저장소를 복제합니다. git clone https://github.com/Microsoft/vcpkg.git※ 여기서 오류가 발생하면 Git이 설치되어 있지 않은 것이니 https://github.com/Microsoft/vcpkg 링크에서 수.. 2022. 11. 30.
[MFC] _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h) 문제 해결 빌드할 때마다 거슬리게 저 메세지가 나오는 경우가 있는데 stdafx.h 상단에 #include "targetver.h" 또는 #include 를 추가해줘서 해결합니다. #include "targetver.h" 안에 #include 가 있기 때문에 결국 동일한 코드입니다. #include #include ... 핵심은 afxwin.h보다 위에 선언되어야 더 이상 해당 메세지가 출력되지 않습니다. 요즘은 stdafx.h가 pch.h로 변경됐는데 어쩄든 afxwin.h보다 위에 선언하면 해결됩니다. 2022. 10. 20.
[C++/MFC] qsort를 이용하여 배열 정렬하기 (int[], CStringArray, CPtrArray) 1. int 배열 정렬 int numArr[10]{ 10, 332, 30, 4, 55, 63, 77, 28, 49, 810 }; qsort (numArr, sizeof(numArr) / sizeof(int), sizeof(int), SortAscending); int SortAscending(const void* n1, const void* n2) { if (*(int*)n1 > *(int*)n2)return 1; else if(*(int*)n1 *(int*)n2)return -1; else if (*(int*).. 2022. 10. 5.
[MFC] 프로그램 내부에서 다른 프로그램(exe, msi) 설치하는 방법 / exe, msi 설치 옵션 간혹 초기 세팅 또는 프로그램 업데이트를 위해 다른 프로그램의 설치가 필요한 경우가 있습니다. 외부 프로그램을 실행할 때 사용하는 ShellExecute의 확장형인 ShellExecuteEx를 활용해서 구현하는 방법에 대해 설명해 드리겠습니다. exe와 msi가 조금 방법이 달라서 나눠서 설명하겠습니다. exe 파일 설치 SHELLEXECUTEINFO si; ZeroMemory(&si, sizeof(SHELLEXECUTEINFO)); si.cbSize = sizeof(SHELLEXECUTEINFO); si.fMask = SEE_MASK_NOCLOSEPROCESS; si.lpVerb = _T("runas"); si.lpFile = _T("exe경로"); si.lpParameters = _T(" /S"); .. 2022. 9. 29.
[MFC] 프로세스간 통신 (Inter Process Communication, IPC) 방법 설명 프로세스간 통신 (Inter Process Communication, IPC) 란? 서로 다른 프로세스에서 정해진 규칙에 의해서 데이터를 주고 받는 행위를 의미합니다. IPC 방법은 여러 가지가 있지만 가장 많이 사용하는 [SendMessage / PostMessage], [WM_COPYDATA], [Memory Mapped File] 3가지 방식에 대해서 설명 드리겠습니다. 1. SendMessage / PostMessage ■ 송신측 (Send) # cpp file static const UINT regMsg = ::RegisterWindowMessage(_T("SendMessageTest")); int nMsg = 100; ::SendMessage(HWND_BROADCAST, regMsg, (WPA.. 2022. 9. 27.
[C++/MFC] 인코딩, 유니코드 구분해서 CFile로 txt파일 읽는 방법 인코딩 종류는 엄청 많지만 텍스트 파일을 저장할 때는 ANSI, UTF-8, UTF-8(BOM), UTF-16 LE, UTF-16 BE 이 5가지를 주로 사용합니다. 🔽 인코딩이나 BOM에 대해 궁금하시다면 아래 글을 참고해주세요. 유니코드 인코딩 BOM(Byte Order Mark) 정리 문자 인코딩(Encoding)이란? 문자 인코딩은 사용자가 입력한 문자나 기호를 컴퓨터가 이해할 수 있는 것으로 만드는 것을 의미합니다. 1. 인코딩의 종류 텍스트 파일을 저장할 때 인코딩 형식을 선 dev-drive.tistory.com MFC 프로젝트에서는 멀티바이트, 유니코드 세팅을 할 수 있고 txt 파일도 여러가지 인코딩이 존재하니 이런걸 다 처리해주지 않으면 특정 경우에서는 글자가 깨질 수 있겠죠. -> 예.. 2022. 9. 22.
반응형