소연의_개발일지
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
[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로 바꿔줌  끝!!

[C++] csv 파일 쓰기
개발공부/C++ 2024. 7. 22. 14:05

추가 예정   예시 코드// 헤더에 작성// 헤더에 추가할 파일CFileManager m_FileManager  // cpp 원하는 함수에 추가CString strTime;CStdioFile file;CString strpath;CString strFile;CString strData;// 로컬 타임 가져오기SYSTEMTIME cur_time;GetLocalTime(&cur_time);strTime.Format(_T("%04d%02d%02d%02d%02d%02d%03ld"), cur_time.wYear, cur_time.wMonth, cur_time.wDay, cur_time.wHour, cur_time.wMinute, cur_time.wSecond, cur_time..