소연의_개발일지
article thumbnail
[C++ MFC] 문자열 _T("")와 L""
개발공부/C++ 2024. 12. 26. 09:31

코드보다 아직도 헷갈려서 정리하는 것 _T("")유니코드(UTF-16)와 ANSI(멀티바이트) 간의 호환성을 유지하기 위해 사용._T는 tchar.h 헤더 파일에 정의된 매크로#define _T(x) _TEXT(x) ☞ 프로젝트 설정에 따라 유니코드나 멀티바이트 문자로 컴파일된다.유니코드 설정일 때: _T("text")는 L"text"로 처리멀티바이트 설정일 때: _T("text")는 "text"로 처리사용 예시TCHAR str[] = _T("Hello");  L""항상 유니코드(UTF-16) 문자열을 나타낸다.L 접두사는 문자열을 유니코드 리터럴로 지정한다.멀티바이트 환경에서도 유니코드 문자열로 처리된다.사용 예시wchar_t str[] = L"Hello";  결론 프로젝트가 유니코드와 멀티바이트 설정..

[C++] 폴더 없을 때 폴더 생성
개발공부/C++ 2024. 12. 17. 14:17

폴더 없을 때 폴더 생성 코드 //폴더 없을경우 폴더 작성 if (!PathIsDirectory(strFolderPath)) { // 경로 존재 여부 확인 if (!CreateDirectory(strFolderPath, NULL)) { DWORD dwError = GetLastError(); // 여기에 dwError를 로그로 남김 or 메세지박스로 남김 } }  중간 폴더도 생성하는 재귀 함수bool CreateDirectories(const CString& path) { CString currentPath = L""; int start = 0; while ((start = path.Find(L'\\', start + 1)) != -1) { currentPath ..

article thumbnail
[C++ ] Systemtime : 시스템 시간 날짜 얻어오기
개발공부/C++ 2024. 12. 17. 09:35

Ctime으로는 밀리세컨을 가져올 수 없어 시스템 타임으로 구현했다. SYSTEMTIME이란?SYSTEMTIME은 Windows API에서 날짜와 시간 정보를 나타내는 구조체이다.이를 통해 연도, 월, 일, 시, 분, 초와 같은 세부 날짜 및 시간 데이터를 저장할 수 있다.  SYSTEMTIME 구조체typedef struct _SYSTEMTIME { WORD wYear; // 연도 (예: 2024) WORD wMonth; // 월 (1-12) WORD wDayOfWeek; // 요일 (0-6, 0 = 일요일) WORD wDay; // 일 (1-31) WORD wHour; // 시 (0-23) WORD..

article thumbnail
[Python] PyQt로 제작한 파일 exe파일로 만들기
개발공부/Python 2024. 12. 11. 09:09

python PyQt 파일 exe로 저장하기 1. PyInstaller 설치먼저, PyInstaller를 설치해야 한다. 터미널 또는 커맨드 프롬프트에서 아래 명령어를 입력하여 설치한다.pip install pyinstaller 2. .ui 파일을 .py 파일로 변환PyQt5 UI 파일(.ui)을 Python 코드로 변환하려면 pyuic5 도구를 사용해야 한다.pyuic5 -o mainUI.py ExceltoCSV.uiExceltoCSV.ui 파일을 Python 파일 mainUI.py로 변환하는 명령어이다. 3. PyInstaller로 EXE 파일 만들기이제 Python 코드 (main.py, mainUI.py, convert_to_csv 함수 등)를 EXE 파일로 변환할 수 있다. 터미널 또는 커맨드 ..

article thumbnail
[C++ MFC] 출력 창에서 디버깅 내용 보기
개발공부/C++ 2024. 12. 4. 16:38

OutputDebugString을 사용해 메시지를 출력한다. CString strMessage; strMessage.Format(_T("rectControl1: LT(%d, %d) RB(%d, %d), point: (%d, %d)"), rectControl1.left, rectControl1.top, rectControl1.right, rectControl1.bottom, ptScreen.x, ptScreen.y); // OutputDebugString을 사용해 메시지 출력 OutputDebugString(strMessage); OutputDebugString(_T("\n")); // 줄바꿈 추가 출력창 단축키는 CTRL + ALT + O 출력예시

[C++ MFC] CTime 클래스 시간 형식 예시
개발공부/C++ 2024. 11. 12. 15:16

CTime 클래스는 MFC(Microsoft Foundation Class) 라이브러리에서 날짜와 시간을 관리하는 데 사용된다.CTime 객체를 특정 형식으로 포맷하려면 Format 함수를 사용하면 된다.(문자열로 변환해 줌) 주요 형식 코드는 다음과 같다.%a : 요일 이름의 축약형 (예: Mon, Tue)%A : 요일 이름 (예: Monday, Tuesday)%b : 월 이름의 축약형 (예: Jan, Feb)%B : 월 이름 (예: January, February)%d : 일 (01 ~ 31)%m : 월 (01 ~ 12)%y : 연도의 마지막 두 자리 (00 ~ 99)%Y : 연도 (예: 2024)%H : 24시간 형식의 시간 (00 ~ 23)%I : 12시간 형식의 시간 (01 ~ 12)%M : 분..

article thumbnail
[C++ MFC] 다이얼로그 창 항상 앞으로 띄우기, 주기적으로 창 앞으로 띄우기
개발공부/C++ 2024. 11. 5. 11:36

다이얼로그 창 항상 앞으로 띄우기 다이얼로그 속성에서 "System Modal" 를 "True""Topmost"를 "True" 로 설정한다.     주기적으로 창 앞으로 띄우기작업자들이 다른 창 띄우고 사용하다가 자리를 뜨면.. 현장에서 사용하는 메인화면을 가리기 때문에 필요했던 기능이다.다른 방법도 있겠지만 난 타이머를 사용해서 구현했다. 1. 헤더에 타이머 타이머에 쓸 define정의#define TIMER_DIALOG_ON_TOP 20241105 2. OninitDialog에 타이머 선언(필요시 여기서 들어가는 5 단위를 에딧박스로 만들면 된다)SetTimer(TIMER_DIALOG_ON_TOP, 5 * 1000 * 60, nullptr); // 5분에 한번씩 주기적으로 타이머 실행1초는 100..

article thumbnail
[Visual Studio c++] region 및 endregion / pragma 코드블럭 지정하기
개발공부/C++ 2024. 9. 27. 15:38

#pragma region에서는 Visual Studio 편집기의 개요 기능을 사용할 때 확장하거나 축소할 수 있는 코드 블록을 지정할 수 있습니다. 구문#pragma region이름 #pragma endregion주석#pragma region 이름#pragma endregion 주석  예시  이렇게 시작할 지점, 종료 지점에 이름과 주석을 각각 표시해 준다. 그럼 이렇게 접을 수 있다!  마이크로소프트에서 제시한 예시 👇// pragma_directives_region.cpp#pragma region Region_1void Test() {}void Test2() {}void Test3() {}#pragma endregion Region_1int main() {}  출처https://learn.micr..

article thumbnail
[C++ MFC] DeleteFile로 파일 삭제, Deletefile로 삭제 안 될때 오류코드
개발공부/C++ 2024. 9. 10. 13:53

DeleteFile() 함수는 Windows API에서 파일을 삭제할 때 사용하는 함수입니다.이 함수는 지정된 파일을 삭제하고 성공 여부를 반환합니다. 주요 요소인자 (Parameters):DeleteFile() 함수는 하나의 인자를 받습니다. 이는 삭제할 파일의 경로를 나타내는 문자열(LPCWSTR 또는 LPCTSTR)입니다.경로는 절대 경로 또는 상대 경로일 수 있으며, 유니코드 문자열(L"")로 표현해야 합니다.반환값 (Return Value):성공 시: TRUE를 반환.실패 시: FALSE를 반환하며, GetLastError()를 통해 오류 정보를 확인할 수 있습니다. 사용 예시#include #include int main() { // 삭제할 파일 경로 (예: "C:\\path\\to\\f..

article thumbnail
[C++ MFC] 창 최소화/최대화/작업표시줄로 내리기
개발공부/C++ 2024. 8. 5. 13:33

최소화 하기 1. 다이얼로그 우클릭 - 속성 클릭 2. 속성 창 - 모양 - minimize box 를 True로 바꿔줌실행시켜도 최소화 창만 활성화~~  최대화 하기1. 다이얼로그 우클릭 - 속성 클릭 2. 속성 창 - 모양 - maximize box 를 True로 바꿔줌  끝!!