Computer/C, CPP, MFC

프로그램 종료

프로그래밍을 하던중 어떻게 하면 안전하게 프로그램을 종료할까 생각해보았다.바로 구글링 메모릭 발생 때문에..문제들이 대부분 발생하는것으로 보여지더라.. 아하! 그렇구나, 라고 다시 한번 느낀 후... 쓰던대로 그냥 'ExitProcess' 이거 사용하였다. 끝! 메인 다이얼로그::OnInitDialog()에서 프로그램을 종료하고 싶다.OnClose나 기타 메소드가 먹지 않거나 먹어도 메모리 충돌 오류메시지가 나온다.exit(0);를 넣어줘도 되나 비정상적인 terminated라 메모리 누수가 발생한다. 방법은 다음과 같다. ::SendMessage(this->m_hWnd, WM_CLOSE, NULL, NULL);혹은 ::SendMessage(GetSafeHwnd(), WM_CLOSE, NULL, NULL..
Computer/C, CPP, MFC

하위폴더까지 전체 복사하기

BOOL ---------------::XCopy(char *Src, char *Dest, int my94) { HANDLE hSrch; WIN32_FIND_DATA wfd; BOOL bResult = TRUE; char fname[MAX_PATH]; char WildCard[MAX_PATH];// 원본 char HoneyCard[MAX_PATH];// 사본 char SrcFile[MAX_PATH]; char DestFile[MAX_PATH]; strcpy_s(WildCard, Src); strcat_s(WildCard, "\*.*"); strcpy_s(HoneyCard, Dest); // 폴더위치 if (my94 == 0) // 재귀 { } else if (my94 == 1) // EZ-Raschel ..
Computer/C, CPP, MFC

윈도우 버전 알아보기

int GetWindowsType(void) { /* return value : -1 : 버전얻기 실패 1 : Windows 95, 2 : Windows 98, 3 : Windows ME, 4 : Windows NT, 5 : Windows 2000, 6 : Windows XP, 7 : Windows 2003, 8 : Windows Vista, 2008 9 : Windows 7, 2008 R2 10: Windows 10, */ int nVersion = -1; OSVERSIONINFOEX osvi = { 0, }; BOOL version_ex_flag = 0; osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); if (!(version_ex_flag = GetVer..
Computer/ETC

리틀엔디안(little endian)&빅엔디안(big endian)

리틀엔디안(little endian)과 빅엔디안(big endian) 알면서도 자주 헷갈리는,, 사실 개념을 정확하게 잡아두고 기억해 두지 않아서 그렇지만,, 자! 오늘 정리하면서 기억해 보자. 리틀엔디안은 least significant bit 빅엔디안은 most significant bit 1. 리틀엔디안 낮은주소에서 하위바이트부터 기록, 0x1234를 저장할때, 34, 12 의 순으로 저장됨. 2. 빅엔디안 낮은주소에서 상위바이트부터 기록, 0x1234를 저장할때, 12, 34 의 순으로 저장됨. 읽기는 빅엔디안이 쉽지만, 저장은 리틀엔디안이 좋다고... 하지만 도긴개긴 -_-a 여러번 왕복해서 보다보면 헷갈려~
Computer/C, CPP, MFC

Windows Styles

Windows Style 을 그냥 번역기...이유는 간단하다.. 영어보다 한글이 눈에 잘 들어온다 -_-;; 없어도 되긴한데...(아~내가 이런것도 봤었구나....) 상수 / 값기술WS_BORDER0x00800000L창은 얇은 줄 테두리가 있습니다.WS_CAPTION0x00C00000L창 제목 표시 줄을 (포함이 WS_BORDER의 스타일을).WS_CHILD0x40000000L창은 자식 창입니다. 이 스타일 창은 메뉴 모음을 가질 수 없습니다. 이 스타일은 사용할 수 없습니다 WS_POPUP의 스타일.WS_CHILDWINDOW0x40000000L동일 WS_CHILD의 스타일.WS_CLIPCHILDREN0x02000000L도면은 부모 창 내에서 발생하는 경우 자식 창에 의해 점유 된 지역을 제외합니다. 부..
Computer/C, CPP, MFC

timeSetEvent 와 친구들

이틀째, 프로그램에서 데이터를 보내주는걸 확인하는 부분이 있는데 (사실 이부분도 몰랐다..내가 만든게 아니니ㅜㅜ)계속 무한루프 걸렸는지 '응답없음' 으로도도한 녀석 같으니 대꾸가~ 없어!!!!!!!! 이리보고 저리보고 이부분일꺼라고 예상은 되었다.. WaitForSingleObject 예상은 했지만, 역시나... 이녀석과 같이 놀고 있는 녀석이 범인이였다.timeSetEvent이놈옴~!!! 재현이 1시간이상 걸리니.. ㅜㅜ지루해~ WaitForSingleObject 에서 받아야되는데 받지를 못하니.. 참고: WaitForSingleObject 자! 그럼 timeSetEvent에 대해서 알아보자.멀티미디어 타이머로 아주아주 높은 정확도의 타이머이다.일정한 주기마다 표시된 콜백 함수나 이벤트를 호출 한다. ..
Computer/ETC

VS2013, 플러그인 없애고 싶은데...

VS2013에 설치한 플러그인 프로그램을 삭제하고 싶은데... 지난번 플러그인들중 쓸만한 것들이 많아서 마구마구 묻지마! 설치를 ... 그런데!! 막상 사용해 보니 불편한 것들이 있었다..어떻게 지우나?? -_-; 난 참 바보다 ㅋㅋㅋㅋㅋ플러그인들을 언인스톨 해보고 해도그놈의 잔재들은 VS2103에 있드라 ㅠ_ㅠ 아고고고고...없애자! 도구 - 확장 및 업데이트... 를 클릭! 여기서 안쓸꺼 제거! 막제거!그러면 된다.... 난 이걸 몰랐긔!왜냐? 메뉴얼 보거나 막 그런 스타일이 아니라..마구마구 눌러보고 경험해 보는 스타일이니깐.... 정말정말, 간단한건데 난 이걸로 엄청나게 짜증을 느꼈지..역시 알면 쉽고 간단한데 모르면...... 손발이 고생이여~
Computer/ETC

운영체제의 주요 구성 기술

1. 프로세스의 관리(1) 프로세스CPU에 의해 수행되는 시스템 및 사용자 프로그램, 프로시저의 활동, 비동기적 행위를 일으키는 주체, 운영체제가 관리하는 실행단위 (2) 스레드(Thread)프로세스에서 실행의 개념만 분리, 독립된 제어 흐름, 하나의 프로세스에 한 개의 스레드 또는 여러 개의 스레드가 존재, 하나의 프로세스 내에서 병행성을 증대시키기 위한 메커니즘, 경량 프로세스라고도 부른다. (3) 프로세스 제어 블록(PCB)운영체제가 프로세스에 대한 유용한 정보를 저장, 운영체제에게 프로세스에 대한 정보를 제공, 각 프로세스는 고유의 PCB 소유, 부모 프로세서와 자식 프로세서는 PCB(Process Control Block)를 공유하지 않는다. (4) 프로세서 제어 블록 포함 정보프로세서 식별자,..
Computer/ETC

Thread(스레드)

메인스레드 외에 다른 스레드를 사용하여 비동기로 동작할 필요성을 느끼게된다.이럴때 스레드를 사용하여 각각 독립적인 동작으로 사용할 수 있다.스레드를 분리하지 않고 메인스레드로만 이용한다면 다량의 데이터를 연산, 관리하는 부분에서 동작을 실행중이기 때문에 다른것들은 하지 못하고 그 동작이 끝날때 까지 기다려야한다. 스레드는 메인스레드와 독립된 동작이기 때문에 멤버변수나 해당클래스의 객체를 이용해서 접근해야한다.스레드 함수 안에서 해당클래스의 변수나 함수로 바로 접근할 수 없다. .h 헤더//타입은 UINT를 해야 하고 매개변수 lParam을 넘겨 주어야 한다static UINT ThreadProc(void *lParam); .cpp 구현AfxBeginThread(ThreadProc, this); nNum1..

Thread(스레드)

EIGHTBOX
EIGHTBOX
hwaya.

programmer

🍋일상의 소소한 순간들부터 큰 꿈까지, 호기심을 만족시킬 다양한 카테고리를 담은 블로그 입니다. 그리고, 소소한 행동에 감동하며 기뻐하고 하루하루에 감사하는 사람🌵

Today Yesterday Total
최신글