소연의_개발일지
article thumbnail
[C++] MFC CImage 이미지 생성, 저장, 로드, 움직이는 사각형 만들기
개발공부/C++ 2023. 9. 17. 15:56

단축키 ctrl + K + O → 헤더 파일로 이동 C++ 접근 지정자 C++에서 클래스나 구조체의 멤버에 대한 접근 지정자(access specifier)는 총 3가지이다: private, public, protected. 각 접근 지정자에 대한 설명은 다음과 같다. 1. private private으로 지정된 멤버는 해당 클래스 내에서만 접근이 가능하다. 외부에서 직접 접근하려고 하면 컴파일 에러가 발생한다. 기본적으로 클래스의 멤버들은 private으로 설정된다. class MyClass { private: int myPrivateVar; }; 2. public public으로 지정된 멤버는 어디서든지 접근이 가능하다. 주로 클래스의 인터페이스로 사용되는 메서드들을 public으로 지정한다. cla..

article thumbnail
[C++] MFC 버튼 생성, 에딧컨트롤 생성, 이벤트 연결, 계산기 만들기
개발공부/C++ 2023. 9. 16. 19:41

버튼 생성하기 드래그 - 앤 드롭 기능으로 버튼을 끌어와서 폼에 넣는다. 버튼 id는 중복이 불가하며 대문자로만 작성할 수 있다. (파이큐티의 객체명과 비슷한 듯) 캡션은 버튼에 작성되는 부분을 수정할 수 있다. BTN_TEST 라고 작성한 후 엔터를 치니 그에 맞게 버튼이 수정됨을 확인할 수 있다. 버튼 이벤트 생성하기 버튼에 클릭 이벤트를 설정하는 방법은 두 가지가 있다. 1. 버튼을 더블클릭해서 바로 더블클릭했을 때 코드로 이동한다. 2. 버튼을 우클릭 - [이벤트 처리 추가] 클릭 - 해당하는 설정값을 클릭한다. 이벤트처리기에서는 어떤 클래스에서 동작할 것인지, 버튼에 대한 이벤트 발생 유형은 어떻게 할 것인지(클릭, 더블클릭, 버튼에 FOCUS,,,)를 설정할 수 있다. 클릭을 의미하는 [BN_..

article thumbnail
[C++] MFC 콘솔창 띄우기, 특정 변수의 값 콘솔창 출력
개발공부/C++ 2023. 9. 16. 16:43

콘솔창 띄우기 디버그 헤더 파일에 #pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console") 을 작성해 주면 된다. 이렇게 작성해 주자 #ifdef _DEBUG #define new DEBUG_NEW #pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console") #endif /Debuf나 Release모드 상관없이 콘솔을 실행하고 싶으면 #ifdef, #endif 지우고 #pragma ~ 만 써주면 된다. 특정 변수의 값을 콘솔창에 출력 아래와 같이 함수 위에 추가해 준다. 파일 선언부에 작성해 줘도 됨 #include //cout으로 출력하기 위해 적용예시 #include..

article thumbnail
[C++] MFC 개발환경 설정하기
개발공부/C++ 2023. 9. 15. 17:24

개발환경 설정 C++ 로 새 프로젝트 만들기를 해서 mfc를 검색했는데 아무것도 나오지 않았다... 추가 도구 및 설치를 클릭하여 설치환경으로 들어간다. 왼쪽의 [C++을 사용한 데스크톱 개발] 을 클릭하고, 우측의 설치 세부 정보에서 MFC가 있는 체크박스를 클릭하여 하단의 [수정] 버튼을 눌러 설치해 준다. 다시 Visual studio를 열어서 [새 프로젝트 만들기] 버튼을 클릭하니 MFC앱 새로만들기가 나온다. [MFC 앱] 을 클릭하고 → [다음]을 눌러 프로젝트 구성으로 이동한다. 프로젝트 이름을 작성하고 위치를 설정한다. 그 다음 애플리케이션 종류 옵션을 설정한다. 어플리케이션 종류에서 단일문서, 여러문서, 대화상자 기반등이 있는데 가장 편한 [대화 상자 기반]을 선택한다. [마침]을 클릭하..

[Python] python에서 바이너리 형식의 파일 인코딩,디코딩하기
개발공부/Python 2023. 9. 14. 20:35

바이너리 디코딩이란? 바이너리 디코딩은 이진 데이터를 사람이 읽을 수 있는 형식으로 변환하는 프로세스를 의미한다. Python에서 디코딩하는 방법은 여러가지가 있는데, 그 중 3가지를 소개해 보려고 한다. 소켓통신할 때 이미지를 수신, 전송할 때 base64모듈을 사용해본적은 있지만 아직도 조금 생소한 감이 있다. struct 모듈 사용 struct 모듈은 Python에서 이진 데이터를 특정 형식에 따라 인코딩하는 데 사용되는 모듈이다. 이 모듈을 사용하여 바이너리 데이터를 인코딩하려면 struct.pack()함수를 사용한다. struct.pack()을 사용한 인코딩 struct.pack() 함수는 지정된 형식 문자열을 기반으로 바이너리 데이터를 패킹하여 인코딩한다. 형식 문자열은 인코딩하려는 데이터의 ..

article thumbnail
[c# 오류]System.InvalidOperationException: '많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다.'
개발공부/C# 2023. 9. 13. 16:17

오류 내용 System.InvalidOperationException: '많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다.' 오류 이유 WPF나 실버라이트에서 타이머는 다른 쓰래드기때문에 UI쓰래드를 접근할때 에러가 난다고 한다. 이럴때는 윈폼과 마찬가지로 인보크를 사용하여 작업을 해야 한다. 해결 방법 // 다른 쓰레드에서 UI 쓰레드 접근하기 => 윈폼과 마찬가지로 인보크를 사용하여 작업 Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { // 실행 할 부분 넣기 })); 이렇게 처리하니 해결되었다. invoke는 동기적으로 실행된다고 한다. 아직 c#이 어렵다.. 참고 링크 https://learn..

[Error] Python mediapipe 사용 중 오류: FileNotFoundError: The path does not exist 해결방법
개발공부/Python 2023. 9. 9. 18:00

개발환경 운영체제: Window 10 64 bit 개발언어: Python 3.11 개발 툴: Pycharm 추가 패키지: mediapipe, Sklearn, Tensorflow, opencv-python 오류 내용 line 264, in __init__ validated_graph.initialize( FileNotFoundError: The path does not exist. 미디어파이프로 졸음인식 코드를 병합하던 과정 중 이런 오류가 생겼다. 스택오버플로우 검색 후 해결 오류 원인 프로젝트의 경로에 유니코드가 아닌 문자가 있을 때 발생: 한국어, 프로젝트의 경로에 "ç" 같이 유니코드가 아닌 문자가 있을 때 발생한다. 해결 방법 파일 경로 순서를 줄인다: 예) 바탕화면, C드라이브에 프로젝트를 생성..

article thumbnail
[Pytube] python 모듈 Pytube로 Youtube 비디오 다운로드하기
개발공부/Python 2023. 9. 8. 20:50

이런 모듈이 있다니 역시 파이썬이다. 없는게 없다..! 모듈에 대해 간단히 설명하자면, 유튜브 비디오를 다운로드 할 수 있는 python 모듈이다. 무료이며 가볍고 라이브러리로 제공하기 때문에 누구나 이 모듈을 사용하여 영상을 다운로드 할 수 있다. 하지만 파이썬 자체에는 깔려있지 않기 때문에 직접 설치해야 한다. Pytube 모듈 설치 pip install pytube 콘솔에 작성하여 설치한다. 인터프리터에 검색하여 설치해도 된다. 전체 코드 from pytube import YouTube import os def downloadYouTube(videourl, path): yt = YouTube(videourl) yt = yt.streams.filter(progressive=True, file_exte..

article thumbnail
[MySQL] 2. 데이터 베이스 삭제
개발공부/SQL & DB 2023. 9. 8. 20:29

데이터베이스 삭제에 대해 알아보겠습니다. 데이터베이스 삭제 명령문 DROP DATABASE ; 예시 MYSQL 8.0 Command LIne Client을 열어서, 이전에 생성한 MY_DATA를 삭제해 보겠습니다. DROP DATABASE MY_DATA; show database;를 통해 조회하니 mydata가 삭제된 모습을 확인할 수 있습니다. MySQL workbench에서도 동일한 명령어를 통해 삭제할 수 있습니다. 또한 우클릭으로 간편하게 삭제할 수 있습니다. 임의로 데이터베이스 my_databse를 생성하고 삭제해 보겠습니다. 문구를 실행하고 번개모양 버튼을 눌러 테이블을 생성합니다. 새로고침을 누르면 my_database가 생성된 모습을 확인할 수 있습니다. 이제 삭제해 보겠습니다. 테이블 우..

article thumbnail
[MySQL] 1. 데이터 베이스 조회 및 생성하기
개발공부/SQL & DB 2023. 9. 8. 20:18

MySQL 내용을 처음부터 정리해서 써보려고 합니다. PostgreSQL과 SQLite를 써보아서 쿼리문은 익숙하지만, 환경이 다르기 때문에 처음부터 정리하며 복습해보겠습니다. 그럼 시작~~!! MySQL 설치는 이전 글을 참고하세요 https://giveme-happyending.tistory.com/203 [SQL] MySQL 설치 방법과 설치 확인하기 MySQL 설치 방법은 혼공 사이트에서 참고한 내용입니다. 개인공부 및 기록용으로 블로그에 따로 작성하였습니다. 출처: https://hongong.hanbit.co.kr/mysql-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%EB%B0%8F-%EC%84%A4%EC%B9%9 giveme-happyending.tistory.com..