반응형

프로그래밍 176

CreateDirectory() 사용법 (하위 폴더, 하위의 하위 폴더 생성)

https://learn.microsoft.com/ko-kr/windows/win32/api/winbase/nf-winbase-createdirectory CreateDirectory 함수(winbase.h) - Win32 appsCreateDirectory 함수(winbase.h)는 새 디렉터리를 만듭니다.learn.microsoft.com      CreateDirectory() 함수는 기본적으로 현재 존재하는 폴더 바로 밑에 폴더를 만드는 기능을 한다.   예를 들어 다음과 같이 "C:\Users\GDT_SW2024_01\Desktop\VS_Projects\교육자료만들어보기\temp" 라는 폴더 구조가 존재할 때 버튼에 아래와 같은 코드를 삽입하고 실행하면.  #define PATH_CSV "C:\..

프로그래밍/MFC 2024.08.09

anaconda + jupyter lab 설치 및 실행

맥OS에서 아나콘다를 설치하고 가상환경을 설정, 주피터 노트북을 실행하는 과정을 정리함. 1. 아나콘다 설치 https://www.anaconda.com/download Free Download | Anaconda Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 맥 전용 아나콘다를 설치한다 2. 터미널에서 아나콘다 가상환경 생성 나는 udemy의 강의를 따라하기 위해 강의에서 제공한 yml 파일을 기반으로 생성했다. 먼저 터미널을 켜고 cd 명령어로 yml 파일이 있는 폴더로 이동하고 아래의 ..

#define 쓰는 이유

1. 코드의 가독성 # define ANGRY 5 int status = ANGRY 화난 상태라는 것을 코드로 표현하려면 정수값을 써야하는데 그러면 가독성이 안좋다. 처음 보는 코드거나, 한달 후에 다시 코드를 보면 상태가 5면 무슨 상태라는 건데? 라는 소리가 나온다. 그때 미리 define으로 정의를 해두면 화난 상태를 의미하는 ANGRY를 넣으면 알아서 5가 들어가니 가독성이 좋다. 2. 유지보수의 용이성 유지보수에도 좋다. status = 5 위와 같은 코드를 여기저기 작성했다가 '화난 상태는 5에서 44로 바꿔야할 거 같아.' 라고 하면 프로젝트에 퍼져있는 모든 5 값을 44로 바꿔야한다. #define ANGRY 5 status = ANGRY 하지만 이런식으로 ANGRY를 사용했다면 #defi..

MFC 소스코드 분석법 (chat GPT)

MFC로 작성된 대규모 소스 코드를 분석할 때는 몇 가지 단계적인 접근 방식을 고려할 수 있습니다. 아래의 단계를 따라가면서 천천히 소스 코드를 분석해 나갈 수 있습니다: 1. **기능 이해**: 먼저 프로그램이 하는 일과 주요 기능을 이해하는 것이 중요합니다. 이를 위해 프로그램의 요구 사항이나 설계 문서 등을 확인하고, 프로그램이 하는 일을 대략적으로 파악합니다. 2. **진입점 찾기**: 프로그램의 진입점이 되는 주요 함수나 클래스를 찾습니다. 대부분의 애플리케이션은 `WinMain()` 또는 `CWinApp` 클래스의 파생 클래스의 `InitInstance()` 함수가 진입점이 될 수 있습니다. 3. **모듈화**: 코드를 모듈로 나누어 각 모듈의 역할과 기능을 파악합니다. 각 모듈은 특정한 작업..

프로그래밍/MFC 2024.03.25

wParam, lParam

wParam은 word parameter, lParam은 long parameter의 줄임말이다. wParam은 주로 키보드, 마우스 입력 시 메시지 값이 들어오게 된다. BOOL CTabDemoDlg::PreTranslateMessage(MSG* pMsg) { // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다. if (pMsg->message == WM_KEYDOWN || pMsg->message == WM_KEYUP) { if (pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN) { return TRUE; //FALSE면 창 닫힘 } } return CDialogEx::PreTranslateMessage(pMsg); } 다이..

프로그래밍/MFC 2024.03.25

윈도우 프로시저

https://chanos.tistory.com/entry/Windows-API-Win32-API%EC%9D%98-%EA%B8%B0%EB%B3%B8%EA%B5%AC%EC%A1%B0-%EC%9C%88%EB%8F%84%EC%9A%B0-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80 [Windows API] Win32 API의 기본구조, 윈도우 프로시저 목표 WinMain함수에서 전달한 메세지를 처리하는 윈도우 프로시저(WinProc 함수)에 대해서 알아보도록 하겠습니다. 개요 지난 포스팅에서 WinMain에 대한 내용에 대해서 이해하는 시간을 가졌습니다. chanos.tistory.com https://www.bing.com/search?q=C%2b%2b+LRESULT+__stdcall+W..

프로그래밍/MFC 2024.03.15

커널과 셸에 대하여 간단한 정리

하드웨어 - 컴퓨터의 기계적인 부분들. 메모리, CPU, SSD 등 - 커널에게 전달받은 명령을 실행 후 처리 결과를 커널에 전달한다. 셸 - 사용자가 입력한 명령어를 해석하는 프로그램 - 사용자는 셸에 명령어를 입력하고, 셸은 커널이 이해할 수 있는 방식으로 명령어를 해석하고 커널에 명령어를 전달한다. - 하드웨어의 명령 수행 결과를 커널을 통해 전달 받는다. 커널 - 셸에게 전달받은 명령어대로 하드웨어를 제어해서 하드웨어가 어떠한 명령을 수행할 수 있도록 한다. - 하드웨어가 명령을 수행 후 결과를 커널에게 전달한다. - 하드웨어가 전달한 명령 수행 결과를 셸로 전달한다. 위에서 ls;pwd;는 사용자가 셸에게 명령어를 입력하는 것이고, 입력받은 명령어는 셸 - 커널 - 하드웨어를 거치며 수행되고 사..

mAP란 무엇인가?

YOLO 모델을 훈련시킬 때 모델의 성능에 대해서 mAP로 표현하여 mAP 수치가 가장 높은 것을 가장 성능이 좋은 모델이라고 best.pt 파일로 저장하게 된다. patience 매개변수는 인내, 인내심이라는 뜻을 가지고 있는데 이는 지정된 숫자의 에폭만큼 모델을 훈련시켰는데 mAP의 향상이 없으면 훈련을 중단하는 옵션이다. 이처럼 mAP는 모델의 성능과 거의 동일하게 사용되고 있는데 대체 이 mAP가 정확하게 무엇인지 제대로 몰라서 알아보기로 하였다. https://artiiicy.tistory.com/25 [ML] 인공지능 Object Detection에서의 mAP란? 수많은 ML 분야 중에서도 Object Detection 분야의 논문에서 자주 등장하는 모델의 성능평가지표인 mAP. 아직은 계속 ..

반응형