티스토리

내 컨테이너
검색하기

블로그 홈

내 컨테이너

push-back.tistory.com/m

맥도널드 트럼프

구독자
1
방명록 방문하기

주요 글 목록

  • [C++] 유니코드 환경에서 CString to char* / char* to CString 변환 유니코드환경에서는 한번에 변환이 안돼서 함수 만들어서 쓰는게 속 편한것 같다. CString -> char * CString strLog = _T(""); wchar_t* wchar_str; char* char_str; int char_str_len; wchar_str = strLog.GetBuffer(strLog.GetLength()); char_str_len = WideCharToMultiByte(CP_ACP, 0, wchar_str, -1, NULL, 0, NULL, NULL); char_str = new char[char_str_len]; WideCharToMultiByte(CP_ACP, 0, wchar_str, -1, char_str, char_str_len, 0, 0); return char_.. 공감수 0 댓글수 0 2023. 5. 2.
  • [MFC] WPARAM, LPARAM 값(float, double) 넘기기 주는쪽 double m_fPosX; double m_fPosY; SendMessage(hWnd, MSG_TEST, reinterpret_cast(&m_fPosX), reinterpret_cast(&m_fPosY)); 받는쪽 LRESULT CDlg_Test::OnUpdateXY(WPARAM wParam, LPARAM lParam) { double* testX = reinterpret_cast(wParam); double* testY = reinterpret_cast(lParam); return 0; } 공감수 0 댓글수 1 2023. 5. 2.
  • [MFC] 다른 클래스에서 다이얼로그의 컨트롤 사용하기 ( 순환참조 피하기 ) 상황은 대충 이러할 때 쓸 수 있다. 메인 다이얼로그, 송 수신 클래스가 있다. 구분을 위해 송신 '클래스', 수신 '클래스'라고 명명했지만 다이얼로그 클래스라고 생각해도 되고 다이얼로그가 연결돼있지 않은 일반 클래스라고 생각해도 된다. 본인은 메인 다이얼로그-클래스 관계로 코딩함. 자녀 다이얼로그의 클래스도 클래스이기 때문에 뭐 상관없다고 보고 그냥 포스팅 어쨌든 메인 다이얼로그(메인 클래스)에서 송신 클래스, 수신 클래스를 생성, 삭제, 조작한다. 즉, 처럼 메인 다이얼로그는 송신 클래스와 수신 클래스를 알고 있는 상태이다. 알고 있는 상태라는 것은 당연히 메인 다이얼로그의 헤더에 각 클래스가 인클루드 된 상태라는 것 그렇다면 다이얼로그의 클래스가 아닌 다른 클래스(ChildDlg)에서 다이얼로그의 .. 공감수 0 댓글수 0 2022. 3. 24.
  • [C++] 간단하게 코드 속도 측정 스레드 돌리다가 속도를 측정해야 할 일이 생겼다. 대충 아래와 같이 측정함 clock()사용 clock_t clk_start = clock(); while (BufferNum != totalBufferNum) { ... } clock_t clk_end = clock(); TRACE("END (%d ms)\n", clk_end - clk_start); 결과 공감수 0 댓글수 0 2022. 2. 23.
  • [C++] 현재(시스템) 시간, 날짜 구하기 'localtime' : this function or variable may be unsafe 라는 CRT경고 안나오게 구하기 1. inline함수로 localtime_xp() 생성 #include inline std::tm localtime_xp(std::time_t timer) { std::tm bt{}; #if defined(__unix__) localtime_r(&timer, &bt); #elif defined(_MSC_VER) localtime_s(&bt, &timer); #else static std::mutex mtx; std::lock_guard lock(mtx); bt = *std::localtime(&timer); #endif return bt; } // 시스템 날짜 리턴 int CM.. 공감수 0 댓글수 0 2022. 2. 23.
  • [MFC] 파일 선택 다이얼로그 띄우기 코드 void CKakaoTalkFindChatDlg::OnBnClickedButtonUploadFile() { static TCHAR BASED_CODE szFilter[] = _T(".txt 파일(*.txt) | *.txt;|모든파일(*.*)|*.*||"); CFileDialog dlg(TRUE, _T("*.txt"), _T("txt"), OFN_HIDEREADONLY, szFilter); if (IDOK == dlg.DoModal()) { CString pathName = dlg.GetPathName(); SetDlgItemText(IDC_EDIT_FILE_PATH, pathName); } } 결과 공감수 2 댓글수 0 2022. 2. 12.
  • [C++] 숫자 세자리 수 마다 콤마(,) 찍기 return type : CString 2가지 방법 1. for 문으로 직접 만든다 CString CImageTransferSenderSimDlg::ReturnComma(CString arg_buf) { CString buf; int nCount = 0; for (int i = arg_buf.GetLength()-1; i >= 0; i--) { nCount++; buf = arg_buf[i] + buf; if ((nCount % 3 == 0) && (i != 0)) { buf = _T(",") + buf; } } return buf; } 2. API 함수 (GetNumberFormat()) 사용 CString CImageTransferSenderSimDlg::ReturnComma(CString arg_b.. 공감수 0 댓글수 0 2022. 2. 11.
  • [C++] std::numeric_limits<T>::epsilon 사용해서 부동소수점 equlity 비교하기 부동 소수점 타입의 고유 특성은 비교가 예상이 돼도 equality는 잘 쓰지 않는다고 한다. 즉, 부동소수점은 0과 같다(==) 같지 않다(!=) 를 직간접적으로 쓰지 않는 게 좋다는 것 기계 엡실론을 쓰면 된다. std::numeric_limits::epsilon() float fVal1; float fVal2; if(fVal1==fVal2) {} // 지양 if(fVal1-fVal2==0.0f) {}// 지양 if(fabs(fVal1-fVal2) > std::numeric_limits::epsilon()){ std::cout 공감수 0 댓글수 0 2022. 2. 11.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.