728x90

Application 172

[MFC] Thread 동기화 (CreateEvent)

Thread 사용 시 함수의 중복된 실행을 막기 위해 사용하는 방법입니다 우선 헤더 파일에 이벤트 핸들을 추가합니다 HANDLE m_hEvent; 그 후 생성자 함수에서 이벤트를 생성합니다 CMyClass::CMyClass() { m_hEvent = CreateEvent(NULL, FALSE, TRUE, NULL); } CreateEvent 함수의 인자값으로는 첫 번째 : 이벤트 속성 (기본 NULL 값) 두 번째 : 매뉴얼 설정 (자동 설정의 경우 FALSE) 세 번째 : 초기값 (초기 활성화 시 TRUE) 네 번째 : 이벤트명 ( 기본 NULL 값) 생성 후 함수에서 아래와 같이 작성하면 동기화가 완료됩니다 void CMyClass::MyFunc() { WaitForSingleObject(m_hEve..

Application/MFC 2023.05.03

[MFC] 한글 로그 파일 작성 (WideCharToMultiByte)

로그파일에 한글을 쓰고 싶다면 아래와 같은 함수를 작성하면 됩니다 BOOL CMyClass::WriteLog(CString strLog) { HANDLE hFile; SYSTEMTIME t; CString strData; CString strPath; DWORD dwWrite; GetLocalTime(&t); strPath.Format(_T("C:\\Log_%04d-%02d-%02d.txt"), t.wYear, t.wMonth, t.wDay); strData.Format(_T("%02d:%02d:%02d - %s\r\n"), t.wHour, t.wMinute, t.wSecond, strLog); int iRes = WideCharToMultiByte(CP_ACP, 0, strData, -1, NULL, ..

Application/MFC 2023.04.26

[MFC] 프로세스 우선 순위 변경

프로그램의 중요도가 높아서 프로세스 우선순위를 변경하려고 할 때는 아래와 같이 프로그램 시작 위치에서 설정을 하면 됩니다 CMyClass::CMyClass(void) { SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS); } 설정값의 경우 WinBase.h 헤더 파일에 존재하며 아래의 값들로 설정이 가능합니다 #define NORMAL_PRIORITY_CLASS 0x00000020 #define IDLE_PRIORITY_CLASS 0x00000040 #define HIGH_PRIORITY_CLASS 0x00000080 #define REALTIME_PRIORITY_CLASS 0x00000100 #define BELOW_NORMAL_PRIORITY..

Application/MFC 2023.04.18

[MFC] ReverseMemcpy 메모리값 반전

특정 통신의 경우 메모리 값을 반전해서 보낼 때가 있는데 이럴 때 유용하게 사용할 수 있는 함수를 소개합니다 void ReverseMemcpy(LPVOID pDst, LPVOID pSrc, int iSize) { for(int iCnt = 0; iCnt < iSize; iCnt++) { ((BYTE *)pDst)[iCnt] = ((BYTE *)pSrc)[iSize - iCnt - 1]; } } 위의 함수를 사용하면 쉽게 메모리값을 반전시킬 수 있습니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

Application/MFC 2023.04.17

[정보] MTU & MSS (TCP Segment / Packet / Network)

TCP 통신을 하다 보면 패킷의 문제로 데이터 전송이 원할하지 않을 때가 존재합니다 네트워크 장비의 설정을 할 수 있다면 얘기가 다르지만 그게 아니라면 통신의 패킷을 정형화된 사이즈로 맞게 잘라서 주고 받는게 효율적입니다 보통 일반적인 TCP 통신의 경우 MTU (Maximum Transmission Unit) Size에 맞춰서 보내면 됩니다 MTU의 크기는 1500 Byte 이며 통신을 위한 IP Header와 TCP Header를 빼면 MSS(Maximum Segment Size)를 얻을 수 있습니다 [MTU (1500 Byte)] - [IP Header (20 Byte)] - [TCP Header(20 Byte)] = [MSS(1460 Byte)] 결과적으로 안정적인 정송의 데이터 크기는 1460 ..

Application/정보 2023.04.13

[Python] 텍스트 마이닝 [Text Mining] with Kiwi

한글의 텍스트 마이닝을 위해서는 한글을 분석해서 형태에 따라 분류를 해야 합니다 그러기 위해서 사용하는 형태 분석기로 Kiwi 를 소개합니다 https://github.com/bab2min/kiwipiepy GitHub - bab2min/kiwipiepy: Python API for Kiwi Python API for Kiwi. Contribute to bab2min/kiwipiepy development by creating an account on GitHub. github.com 설치 방법은 간단하게 pip install 명령어로 처리하시면 됩니다 > pip install kiwipiepy 이후 코드 작성법은 아래와 같이 작성하시면 됩니다 from kiwipiepy import Kiwi class ..

Application/Python 2023.04.05

[Python] 다른 프로세스 시작 및 종료 [subprocess & kill]

메인 프로세스 동작 중 다른 프로그램을 실행하고 싶을 때는 subprocess 모듈을 이용하면 됩니다 특정 시간이 지난 후 프로세스 kill까지 시키는 간단한 코드를 알려드립니다 import os import signal import subprocess from time import sleep proc = subprocess.Popen("ping 127.0.0.1 -t", stdout=subprocess.PIPE, shell=True) sleep(10) os.kill(proc.pid, signal.SIGTERM) 위와 같이 작성 시 10초간 프로세스 동작 후 메인 프로세스가 실행시킨 프로세스를 죽이는 것을 확인하실 수 있습니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

Application/Python 2023.04.04
728x90
반응형