본문 바로가기
반응형

전체 글45

[C++/MFC] 멀티바이트, 유니코드 개념 정리 / 문자열 변환 방법 멀티바이트란? 유니코드가 생기기 이전에 다국어를 표현하기 위해 사용했던 방식으로 최초에는 싱글바이트로 숫자, 영어만 표현되도록 1byte만을 사용해서 문자를 처리했는데 한국어, 일본어, 중국어 등 1byte만으로는 표현되지 않는 언어들을 표현하기 위해 만들어진 개념으로 MBCS(MultiByte Character Set) 또는 가변 너비 인코딩이라고도 불린다. 유니코드란? 멀티 바이트는 영어, 숫자 등 반각문자는 1byte, 한국어, 중국어 등 전각 문자는 2byte를 사용해서 표현하는데 이런 가변적인 특성을 없애고 모든 문자를 2byte로 표현하기 위해 정의한 방식이다. 하지만 유니코드라고 모두 2byte인것은 아니고 유니코드도 인코딩에 따라 가변적으로 적용되기도 한다. MFC(Visual C++)프로.. 2022. 9. 19.
[C++/MFC] 텍스트 파일의 인코딩 확인하는 방법 유니코드 인코딩 BOM(Byte Order Mark) 정리 문자 인코딩(Encoding)이란? 문자 인코딩은 사용자가 입력한 문자나 기호를 컴퓨터가 이해할 수 있는 것으로 만드는 것을 의미합니다. 1. 인코딩의 종류 텍스트 파일을 저장할 때 인코딩 형식을 선 dev-drive.tistory.com * 우선 인코딩이나 BOM의 개념을 모르신다면 위 글을 읽어보시고 오시는 것을 추천드립니다. 많은 종류의 인코딩이 있지만 가장 많이 사용하는 ANSI, UTF-8, UTF-8(BOM), UTF-16 LE, UTF-16 BE 5가지를 구분하는 방법에 대해 설명해 드리겠습니다. 🔽 파일의 BOM(Byte Order Mark)를 읽어서 인코딩 구분 enum encoding { ANSI, UTF8, UTF8_BOM, .. 2022. 9. 16.
유니코드 인코딩 BOM(Byte Order Mark) 정리 문자 인코딩(Encoding)이란?문자 인코딩은 사용자가 입력한 문자나 기호를 컴퓨터가 이해할 수 있는 것으로 만드는 것을 의미합니다. 1. 인코딩의 종류텍스트 파일을 저장할 때 인코딩 형식을 선택할 수 있는데 인코딩 개념을 아시는 분이라면 텍스트 파일을 저장할 때 위 사진 처럼 인코딩을 설정해서 저장해 보신적이 있을겁니다. 인코딩의 종류는 엄청 다양하지만 크게 ANSI, UTF-8, UTF-8(BOM), UTF-16 Little Endian, UTF-16 Big Endian 5가지로 나눌 수 있습니다. BOM(Byte Order Mark) 이란?BOM은 바이트 순서를 표시하는 것으로 문서 맨 앞에 인코딩 방식에 관련된 문자를 넣어서 인코딩 방식을 표현하는 것입니다. 이 문자는 단순히 인코딩 .. 2022. 9. 14.
[MFC] 재배포 패키지 없이 프로그램 배포하는 방법 MFC로 프로그램을 만들어서 배포했을 때 해당 PC에 mfc dll이 없거나 재배포패키지가 설치되어 있지 않다면 아래와 같은 에러메세지가 출력되면서 실행할 수 없게됩니다. 여기서 mfc140u.dll의 의미는 140은 vs버전, u는 유니코드 버전이라는 의미입니다. 빌드한 버전에 따라 mfc110.dll mfc100.dll.. 등의 오류가 발생할 수 있겠죠. 🔽 프로그램을 다시 빌드할 수 없다면 아래 MS사이트에서 재배포패키지 다운 받아 문제 있는 PC에 설치하면 해결됩니다. 지원되는 최신 Visual C++ 재배포 가능 패키지 다운로드 이 문서에서는 최신 버전의 Visual C++ 재배포 가능 패키지 패키지에 대한 다운로드 링크를 나열합니다. docs.microsoft.com 🔽 다시 빌드가 가능하다면.. 2022. 8. 29.
[C++/MFC] rand()함수를 이용하여 로또 번호 생성해보기 [C / C++] 난수, 랜덤 숫자 구하기 rand() 1. 랜덤 숫자 구하기 랜덤 숫자는 rand() 함수를 사용하여 구합니다 (rand() - 0과 RAND_MAX(32767) 사이의 난수 정수를 반환하는 함수) int nNum1 = rand(); int nNum2 = rand(); int nNum3 = rand(); std::cout.. dev-drive.tistory.com 이전에 포스팅했던 rand()함수를 응용하여 랜덤으로 로또 번호를 만드는 방법에 대해 설명하고 간단하게나마 프로그램을 만들어봤는데 이것도 사용해보실 수 있게 공개하겠습니다. ■ 1~45의 랜덤 숫자를 생성 srand((unsigned int)time(NULL)); int nRandNum = rand() % 45 + 1; 단순하.. 2022. 8. 28.
[C / C++] 난수, 랜덤 숫자 구하기 rand() 1. 랜덤 숫자 구하기 랜덤 숫자는 rand() 함수를 사용하여 구합니다 (rand() - 0과 RAND_MAX(32767) 사이의 난수 정수를 반환하는 함수) int nNum1 = rand(); int nNum2 = rand(); int nNum3 = rand(); std::cout 2022. 8. 19.
[C++ / MFC] 실행중인 프로세스 찾기 / 종료시키기 ■ 실행중인 프로세스 찾기 (CreateToolhelp32Snapshot) #include "tlhelp32.h"// for CreateToolhelp32Snapshot HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 processEntry32; processEntry32.dwSize = sizeof(PROCESSENTRY32); if (!Process32First(hProcessSnap, &processEntry32)) CloseHandle(hProcessSnap); CString sProcessName = _T("notepad.exe"); // 메모장 찾기 while (Process32Next(h.. 2022. 8. 9.
눈 피로를 줄이는 모니터 블루라이트 차단 방법 저는 컴퓨터 앞에 앉아 있는 시간이 많고 눈이 좋지 않아서 항상 블루라이트 차단을 하고 작업을 하는데요. 이걸 사용하다가 끄면 역체감이 엄청납니다. 평소 모니터 화면이 너무 쨍하다고 느꼈거나 눈이 금방 피로해지시는 분들은 한번 사용해보시길 바랍니다. 윈도우 10 야간 모드 윈도우10에서 기본적으로 제공하는 기능입니다. 윈도우 키를 누르고 야간 모드를 검색한 후 실행해줍니다. 그러면 이렇게 설정 창이 나오는데 강도를 조절할 수 있고 블루라이트 차단을 항상 적용할건지, 시간을 설정해서 햇빛이 강한 시간대에만 적용할건지 선택적으로 적용할 수 있습니다. 설정을 하고나면 약간 누리끼리해 보이는데 금방 적응됩니다. f.lux 프로그램 이용 f.lux Software to warm up your computer di.. 2022. 8. 6.
[C++ / MFC] 레지스트리 값 저장, 불러오기 (RegCreateKeyEx) 레지스트리 키 생성 ■ RegCreateKeyEx 레지스트리 키를 만들거나 키가 이미 있는 경우 값을 읽을 수 있도록 키를 여는 함수입니다. 🔽 함수 형식 및 파라미터 참고 https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regcreatekeyexw ※ Sample Code HKEY hKey = NULL; DWORD dwDisposition; if (RegCreateKeyEx(HKEY_CURRENT_USER,// 키 _T("SOFTWARE\\Dev"), // 경로 0, NULL, REG_OPTION_NON_VOLATILE,// 비휘발성, 재부팅해도 값 보존 KEY_WRITE, NULL, &hKey, &dwDisposition) ==.. 2022. 8. 6.
반응형