본문 바로가기

Computer/C, CPP, MFC

[CPP, MFC] 윈도우, 다이얼로그 최대화 초기화부분에서, this->ShowWindow(SW_SHOWMAXIMIZED); this->UpdateWindow(); 도움. SW_HIDE : 윈도우를 화면에 보이지 않게 한다. SW_MINIMIZE : 윈도우를 최소화한다. SW_RESTORE : 윈도우를 원래의 크기와 위치로 화면에 표시한다. SW_SHOW : 윈도우를 화면에 보이게 한다. SW_SHOWMAXIMIZED : 윈도우를 최대한 크게 하여 표시한다. SW_SHOWMINIMIZED : 윈도우를 최소한 작게 하여 표시한다. SW_SHOWMINNOACTIVE : 윈도우를 아이콘으로 표시한다. SW_SHOWNA : 윈도우를 현재 상태로 표시한다. SW_SHOWNOACTIVATE : 윈도우를 가장 최근의 크기와 위치로 표시한다. SW_SHOWNOR.. Computer/C, CPP, MFC 2020. 6. 16. 11:00
공용 언어 런타임 지원의 설정에 따라 빌드 결과값이 다르다? 오잉? 왜! 왜! 다르게 보이는거야??!? 예전에 만들어둔 MFC프로그램에서 보는것과 처리값이 다르게 보이는것이다. 오? 왜 이러지 내가 잘 못 만들었나? (그렇지... 컴퓨터는 거짓말 안하니까~) 디자인 파일이라서 데이터 하나하나가 중요한데.. 그래서 확인이 필요했다. 계산기 오픈!! hex 값 96 이면 dec로 150이 맞는데 오잉?! 오잉? 0.00001초 정도 하고... 당연하니까~ 계산기 처리 단위를 바꿔보았다. 그랬다. 뭐... 당연하고 사실 -106이 맞다.............................. 는 안돼!!! 난 저걸 원하는게 아니라고!!! 그래서 뭐가 문제일까? 단위도 바꾸고 비트도 자르고 했지만, 귀찮다.. 빌드 설정 문제인가 싶어서 프로젝트 속성을 확인했다. 의심되어 보.. Computer/C, CPP, MFC 2019. 10. 1. 13:33
CRegKey/SetValue 바꾸자 디자인변환 프로그램을 만들일이 있어서 오랜만에 C++를 만지작 만지작 하던 중, 레지스트리에 저장된 값을 불러오고, 저장할 일이 생겼다. 그래서 생각없이, 예전에 많이 사용하던 그때 그 코드로 사용했다. 저장할때, SetValue를... CRegKey RegKey; RegKey.Create(HKEY_CURRENT_USER, "블라블라"); RegKey.SetValue(nConversionEnabled, "이거블라블라"); RegKey.Close(); 그리고 빌드. 빌드. 빌드... 으움? 왜!!!!!!!! C4996이 뜨냐고!!!!! 그랬다. 또, 무언인가 고전틱한 고전고전의 느낌이라 취약점이 있겠지. 오버플로우가 생길수 있을려나... 바로 검색! 뚜뚱! 해당함수는 QueryValueEx , Setval.. Computer/C, CPP, MFC 2019. 9. 12. 14:58
ReadFile() 간단정리 RedFile(파일핸들, 저장버퍼 포인터, 읽어오는 바이트수,출력용인수, 비동기아니면 NULL) ReadFile() 파일에서 데이터를 읽어옴. 동기, 비동기 모두 사용가능함. 원형 BOOL ReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ); - HANDLE hFile: 읽고자 하는 파일의 핸들. 이 파일은 GENERIC_READ 액세스 권한으로 열어야 합니다. - LPVOID lpBuffer: 읽어 올 데이터를 저장할 버퍼의 포인터 입니다. - DWORD nNumberOfBytesToRead: 실제 읽어오는 바이트 수를 지.. Computer/C, CPP, MFC 2015. 12. 4. 10:48
SetFilePointer() 간단정보SetFilePointer(대상 파일의 핸들, 옮길 위치, NULL, 시작위치)파일을 처음 열었을때, 포인터의 위치는 파일의 처음, IO 처리에 따라 파일포인터가 자동으로 이동. SetFilePointer()파일 포인터를 원하는 위치로 옮길때 사용.32비트와 64비트를 동시에 지원하기 위해 2번째 인수와 3번째 인수를 통해 각 4바이트씩 64비트, 오프셋을 전달할수 있다.SetFilePointerEx 를 사용하는것이 좋다. 원형DWORD SetFilePointer( HANDLE hFile, LONG IDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod); - HANDLE hFile: 파일포인터를 옮기고자 하는 대상 파일의 핸들. - LO.. Computer/C, CPP, MFC 2015. 12. 4. 10:22
프로그램 종료 프로그래밍을 하던중 어떻게 하면 안전하게 프로그램을 종료할까 생각해보았다.바로 구글링 메모릭 발생 때문에..문제들이 대부분 발생하는것으로 보여지더라.. 아하! 그렇구나, 라고 다시 한번 느낀 후... 쓰던대로 그냥 'ExitProcess' 이거 사용하였다. 끝! 메인 다이얼로그::OnInitDialog()에서 프로그램을 종료하고 싶다.OnClose나 기타 메소드가 먹지 않거나 먹어도 메모리 충돌 오류메시지가 나온다.exit(0);를 넣어줘도 되나 비정상적인 terminated라 메모리 누수가 발생한다. 방법은 다음과 같다. ::SendMessage(this->m_hWnd, WM_CLOSE, NULL, NULL);혹은 ::SendMessage(GetSafeHwnd(), WM_CLOSE, NULL, NULL.. Computer/C, CPP, MFC 2015. 10. 13. 10:22
하위폴더까지 전체 복사하기 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 2015. 10. 2. 16:32
윈도우 버전 알아보기 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/C, CPP, MFC 2015. 10. 2. 14:15
Windows Styles Windows Style 을 그냥 번역기...이유는 간단하다.. 영어보다 한글이 눈에 잘 들어온다 -_-;; 없어도 되긴한데...(아~내가 이런것도 봤었구나....) 상수 / 값기술WS_BORDER0x00800000L창은 얇은 줄 테두리가 있습니다.WS_CAPTION0x00C00000L창 제목 표시 줄을 (포함이 WS_BORDER의 스타일을).WS_CHILD0x40000000L창은 자식 창입니다. 이 스타일 창은 메뉴 모음을 가질 수 없습니다. 이 스타일은 사용할 수 없습니다 WS_POPUP의 스타일.WS_CHILDWINDOW0x40000000L동일 WS_CHILD의 스타일.WS_CLIPCHILDREN0x02000000L도면은 부모 창 내에서 발생하는 경우 자식 창에 의해 점유 된 지역을 제외합니다. 부.. Computer/C, CPP, MFC 2015. 6. 15. 16:20
timeSetEvent 와 친구들 이틀째, 프로그램에서 데이터를 보내주는걸 확인하는 부분이 있는데 (사실 이부분도 몰랐다..내가 만든게 아니니ㅜㅜ)계속 무한루프 걸렸는지 '응답없음' 으로도도한 녀석 같으니 대꾸가~ 없어!!!!!!!! 이리보고 저리보고 이부분일꺼라고 예상은 되었다.. WaitForSingleObject 예상은 했지만, 역시나... 이녀석과 같이 놀고 있는 녀석이 범인이였다.timeSetEvent이놈옴~!!! 재현이 1시간이상 걸리니.. ㅜㅜ지루해~ WaitForSingleObject 에서 받아야되는데 받지를 못하니.. 참고: WaitForSingleObject 자! 그럼 timeSetEvent에 대해서 알아보자.멀티미디어 타이머로 아주아주 높은 정확도의 타이머이다.일정한 주기마다 표시된 콜백 함수나 이벤트를 호출 한다. .. Computer/C, CPP, MFC 2015. 6. 2. 15:04
PeekMessage 게임을 만들때 중요한것 중 확인하고 넘어가야 할 부분은 메세지 루프 입니다.일반적으로 message를 가져오는 GetMessage() 함수가 있습니다. 이 함수는 메세지 큐에서 message를 가져와 message구조체에 복사하고 message 큐에 복사한다.message가 없을때는 새로운 message가 들어올 때까지 리턴을 하지 않습니다. 메세지가 들어오기 전까지는 놀고 있게 되는건데,이 놀고 있는 시간을 dead time(데드 타임) 이라고 합니다. (MicroSoft 특허가 있다고 하더라..) 메세지가 없는 시간 또는 구간에 우리가 다른 작업을 할 수 있다면, 메세지 처리 시간과 별개로다른 작업에 영향을 주지 않고 실행해야할 것들을 처리할 수 있겠습니다. 만, GetMessage()의 특성상 메세.. Computer/C, CPP, MFC 2014. 3. 26. 15:07
Printf 함수에 대해서 알아보자 Printf 함수에 대해서 알아보자 #include int main(void) { printf("Hello, world\n"); return 0; } 위의 코드를 실행해 봅시다. 코드를 실행하면 Hello, world 라는 화면이 나올것입니다. 맞습니다. printf 라는 함수는 화면에 내용을 출력하는 함수입니다. printf("---") 의 --- 이 부분의 내용을 출력합니다. printf 함수는 문자열을 출력하는 기능을 제공한다. Hello, world의 끝 부분에 보면 '\n'과 같은 문자가 있습니다. 이런 문자를 가르켜 이스케이프 시퀀스(escape sequence)라 부르거나 특수문자라고 부르기도 합니다. 이는 단순히 출력되는 문자가 아니라 다른 의미로 해석이 되는 별도의 기능을 제공하는 문자입.. Computer/C, CPP, MFC 2011. 7. 13. 20:16

BLOG Version/ 1.1.2.1 _22.05.26
Copyright © 2002-2020 EIGHTBOX. All Rights Reserved.
Behold the fowls of the air: for they sow not, neither do they reap, nor gather into barns; yet your heavenly Father feedeth them. Are you not much better than they?