소연의_개발일지
[C++] 12.04 공부내용 | LOWORD,HIWORD
개발공부/C++ 2023. 12. 4. 17:46

LOWORD,HIWORD 32비트라는 운영체제 가정하에 WORD라는 건 unsigned short 이다. (typedef unsigned short WORD) unsigned short 는 2바이트이며 0부터 65535까지의 값을 나타낼 수 있다. #define LOWROD(I) ((WORD)(I)) #define HIWORD(I) ((WORD)(((DWORD)(I) >> 16 & 0FFFF)) LOWORD, HIWORD는 주로 DWORD (unsigned int_32) 를 두개로 나눌때(?) 사용합니다. 위에 보신대로 LOWORD는 워드형으로 형변환을 시킵니다. 즉.. 오른쪽 16자리의 값이 되겠지요 .. HIWORD는16자리 쉬프트후 워드형으로 형변환 시키므로 왼쪽의 16자리 값이 됩니다. ?? 먼소..

[C++]Cstring double로 변경
개발공부/C++ 2023. 12. 4. 13:12

Cstring double로 변경하기 멀티바이트 환경 atof() 사용 CString thestring("13.37"); double d = atof(thestring). 유니코드 환경 _wtof() 사용 CString thestring(L"13.37"); double d = _wtof(thestring).

[MFC] 버튼 활성화 비활성화
개발공부/C++ 2023. 11. 21. 14:20

1. 컨트롤 변수의 경우 OnBnClickedRadioScaling70.EnableWindow(FALSE); // TRUE: 활성, FALSE: 비활성 // 컨트롤_변수_이름.EnableWindow(FALSE); 2. 버튼의 ID인 경우 GetDlgItem(IDC_RADIO_SCALING_70)->EnableWindow(true); 적용 예시 체크박스가 눌러져 있을 때 라디오 버튼 활성화/ 비활성화 코드 예시 void CDlgAdminSetting::OnBnClickedCheckSummaryDataAddSave() { UpdateData(true); // 라디오 버튼 활성/비활성화 if (m_bUseDataAddSave == true) { GetDlgItem(IDC_RADIO_SCALING_140)->E..

article thumbnail
[C++] 쓰레드 생성, 이미지에서 픽셀 갯수 세기
개발공부/C++ 2023. 9. 20. 20:58

쓰레드 쓰레드 구문 #include detach()는 결과값을 기다리지 않고 다음 코드를 실행시키는 함수이다. join은 다른 쓰레드들이 끝날 때까지 기다려서 합친 후 실행시킨다. 쓰레드 개념을 공부하기 위해 따로 정리해 보았다. [C++] 멀티 쓰레드, 프로세스, 쓰레드 이해하기, C++ 예제 쓰레드 공부 공부 출처: 모두의 코드 C++ 쓰레드 https://modoocode.com/269 씹어먹는 C ++ - 모두의 코드 씹어먹는 C ++ - 작성일 : 2019-04-01 이 글은 115087 번 읽혔습니다. 에 대해 다룹니다. 안녕하세요 여러 giveme-happyending.tistory.com 전체 코드 함수 인클루드 #include "Process.h" // 프로세스 정보를 가져옴 #inclu..

article thumbnail
[C++] 멀티 쓰레드, 프로세스, 쓰레드 이해하기, C++ 예제
개발공부/C++ 2023. 9. 20. 20:55

쓰레드 공부 공부 출처: 모두의 코드 C++ 쓰레드 https://modoocode.com/269 씹어먹는 C ++ - 모두의 코드 씹어먹는 C ++ - 작성일 : 2019-04-01 이 글은 115087 번 읽혔습니다. 에 대해 다룹니다. 안녕하세요 여러분! 이번 강좌에서는 여태까지 modoocode.com 이 페이지를 스스로 공부하기 위해 요약한 것입니다. 자세한 내용은 위 링크를 참고하세요. 멀티 쓰레드 프로그램 작업 관리자 프로그램에는 여러 프로세스들이 실행되고 있는 모습을 확인할 수 있다. 프로세스란, 운영체계에서 실행되는 프로그램의 최소 단위라고 보면 된다. 즉, 우리가 1개의 프로그램을 가리킬 때 보통 1개의 프로세스를 의미하는 경우가 많다. 이 프로세스들은 컴퓨터의 두뇌라고 하는 CPU의 ..

article thumbnail
[C++] MFC 다이얼로그 중심에 원 그리기
개발공부/C++ 2023. 9. 20. 15:03

라인에딧 값을 가져와서 검은 원을 그리는 코드를 그리며 공부해 보았다. 전체 코드 using namespace std; void CProDrawCircleDlg::OnBnClickedButton1() { CClientDC dc(this); // 라인에딧 값 가져오기 = 원의 반지름 가져오기 CString mText; mEdit.GetWindowText(mText); int r = _wtoi(mText.GetBuffer()); // 반지름 mText.ReleaseBuffer(); cout 0730(목) 강좌 리뷰~ 함수 vs 매크로 함수 : 함수는 분기(call)가 일어나서 실행된다.매크로 : 매크로에 지정된 루틴이 매크로가 사용된 지점(inline 키워드 사용)에 치환된다. 성능차이 - Size : Sp..

[C++] <chrono> 헤더 사용하여 함수 실행시간 측정
개발공부/C++ 2023. 9. 19. 21:38

chrono 헤더 사용하여 c++ 함수 측정 시간을 측정하기 다음은 간단한 예제이다. #include #include // 시간 관련 기능을 포함하는 헤더 void someFunction() { // 이 함수에서는 1초 동안 멈춥니다. 실제 코드에서는 당신의 함수 로직을 넣어주세요. std::this_thread::sleep_for(std::chrono::seconds(1)); } int main() { // 시작 시간 측정 auto start = std::chrono::high_resolution_clock::now(); // 함수 실행 someFunction(); // 종료 시간 측정 auto stop = std::chrono::high_resolution_clock::now(); // 경과 시간 계..

article thumbnail
[C++] 여러 조건 변경하기, Cpen 색 변경, define
개발공부/C++ 2023. 9. 19. 20:26

참고 링크: https://www.youtube.com/watch?v=e6ivB-FQo_k&list=PLlIX4lkC1JdMx-vfK8I-J3-L-GL7TbMf9&index=11&pp=iAQB 초기값 어둡게 하기 변경한 부분 0으로 변경 memset(fm, 0, nWidth * nHeight); 밝기 부분 255로 나눠주기 // 점찍기 for (int k = 0; k < 100; k++) { int x = rand() % nWidth; int y = rand() % nHeight; fm[y * nPitch + x] = rand()%0xff; // 각각의 밝기에 대해서 255(0xff)로 나눠준다. } 좌표의 픽셀 값이 0이 아닐 경우로 바꿔주기 if (fm[j * nPitch + i] != 0) // 찍..

article thumbnail
[C++] MFC 다른 윈도우로 포인트 복제하기
개발공부/C++ 2023. 9. 18. 21:19

이미지 오버레이로 그림 그리기 메모리 릭 제거하기 메모리 릭을 막기 위해 새로 생성한 m_pDlgImgResult 에 대해서도 생성 후 삭제를 해 준다. 안전하게 존재하는지 if문을 걸어 작성해 준다. // 메모리 릭을 막기 위해 생성된 void CgPrjDlg::OnDestroy() { CDialogEx::OnDestroy(); if(m_pDlgImage) delete m_pDlgImage; if(m_pDlgImgResult) delete m_pDlgImgResult; } 타원 그리기 자식 다이얼로그에 타원을 그리는 코드를 만들어 볼 것이다. 먼저 헤더 폴더에 함수를 drawData를 정의해 주고 선언만 해 줬으니 cpp 파일에서 정의를 해 준다. CDlgImage 클래스 안에 있어야 하니 CDlgIm..

article thumbnail
[C++] MFC 듀얼이미지 다이얼로그
개발공부/C++ 2023. 9. 18. 20:09

참고 링크: https://youtu.be/EoXP_PH0xzA?list=PLlIX4lkC1JdMx-vfK8I-J3-L-GL7TbMf9 github에서 중간단계 파일 받기 위 영상 출처) github에서 gLim-main/mfcExam 검색 후 다운받기 새 다이얼로그 이미지 만들기 헤더 이동 단축키 Ctrl + O + K DlgImage.h 파일에서 이미지 변수를 만들어 준다. CImage m_Image; // 이미지 변수를 만든 것 그리고 변수만 선언을 해준것이기 때문에 cpp 파일에서 실체를 만들어줘야 한다. ctrl + K + O 로 다시 cpp 파일로 돌아가서 initial dialog를 생성해 준다. 다이얼로그가 생성될 때는 항상 initial dialog를 콜(호출)하기 때문에 이 부분이 선행..