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
๊ณต์ฉ ์ธ์ด ๋ฐํ์ ์ง์์ ์ค์ ์ ๋ฐ๋ผ ๋น๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋ค๋ฅด๋ค?
์ค์? ์! ์! ๋ค๋ฅด๊ฒ ๋ณด์ด๋๊ฑฐ์ผ??!? ์์ ์ ๋ง๋ค์ด๋ MFCํ๋ก๊ทธ๋จ์์ ๋ณด๋๊ฒ๊ณผ ์ฒ๋ฆฌ๊ฐ์ด ๋ค๋ฅด๊ฒ ๋ณด์ด๋๊ฒ์ด๋ค. ์ค? ์ ์ด๋ฌ์ง ๋ด๊ฐ ์ ๋ชป ๋ง๋ค์๋? (๊ทธ๋ ์ง... ์ปดํจํฐ๋ ๊ฑฐ์ง๋ง ์ํ๋๊น~) ๋์์ธ ํ์ผ์ด๋ผ์ ๋ฐ์ดํฐ ํ๋ํ๋๊ฐ ์ค์ํ๋ฐ.. ๊ทธ๋์ ํ์ธ์ด ํ์ํ๋ค. ๊ณ์ฐ๊ธฐ ์คํ!! hex ๊ฐ 96 ์ด๋ฉด dec๋ก 150์ด ๋ง๋๋ฐ ์ค์?! ์ค์? 0.00001์ด ์ ๋ ํ๊ณ ... ๋น์ฐํ๋๊น~ ๊ณ์ฐ๊ธฐ ์ฒ๋ฆฌ ๋จ์๋ฅผ ๋ฐ๊ฟ๋ณด์๋ค. ๊ทธ๋ฌ๋ค. ๋ญ... ๋น์ฐํ๊ณ ์ฌ์ค -106์ด ๋ง๋ค.............................. ๋ ์๋ผ!!! ๋ ์ ๊ฑธ ์ํ๋๊ฒ ์๋๋ผ๊ณ !!! ๊ทธ๋์ ๋ญ๊ฐ ๋ฌธ์ ์ผ๊น? ๋จ์๋ ๋ฐ๊พธ๊ณ ๋นํธ๋ ์๋ฅด๊ณ ํ์ง๋ง, ๊ท์ฐฎ๋ค.. ๋น๋ ์ค์ ๋ฌธ์ ์ธ๊ฐ ์ถ์ด์ ํ๋ก์ ํธ ์์ฑ์ ํ์ธํ๋ค. ์์ฌ๋์ด ๋ณด..
Computer/C, CPP, MFC
CRegKey/SetValue ๋ฐ๊พธ์
๋์์ธ๋ณํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ผ์ด ์์ด์ ์ค๋๋ง์ C++๋ฅผ ๋ง์ง์ ๋ง์ง์ ํ๋ ์ค, ๋ ์ง์คํธ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ ๋ถ๋ฌ์ค๊ณ , ์ ์ฅํ ์ผ์ด ์๊ฒผ๋ค. ๊ทธ๋์ ์๊ฐ์์ด, ์์ ์ ๋ง์ด ์ฌ์ฉํ๋ ๊ทธ๋ ๊ทธ ์ฝ๋๋ก ์ฌ์ฉํ๋ค. ์ ์ฅํ ๋, SetValue๋ฅผ... CRegKey RegKey; RegKey.Create(HKEY_CURRENT_USER, "๋ธ๋ผ๋ธ๋ผ"); RegKey.SetValue(nConversionEnabled, "์ด๊ฑฐ๋ธ๋ผ๋ธ๋ผ"); RegKey.Close(); ๊ทธ๋ฆฌ๊ณ ๋น๋. ๋น๋. ๋น๋... ์ผ์? ์!!!!!!!! C4996์ด ๋จ๋๊ณ !!!!! ๊ทธ๋ฌ๋ค. ๋, ๋ฌด์ธ์ธ๊ฐ ๊ณ ์ ํฑํ ๊ณ ์ ๊ณ ์ ์ ๋๋์ด๋ผ ์ทจ์ฝ์ ์ด ์๊ฒ ์ง. ์ค๋ฒํ๋ก์ฐ๊ฐ ์๊ธธ์ ์์๋ ค๋... ๋ฐ๋ก ๊ฒ์! ๋๋ฑ! ํด๋นํจ์๋ QueryValueEx , Setval..
Computer/C, CPP, MFC
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
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
ํ๋ก๊ทธ๋จ ์ข ๋ฃ
ํ๋ก๊ทธ๋๋ฐ์ ํ๋์ค ์ด๋ป๊ฒ ํ๋ฉด ์์ ํ๊ฒ ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํ ๊น ์๊ฐํด๋ณด์๋ค.๋ฐ๋ก ๊ตฌ๊ธ๋ง ๋ฉ๋ชจ๋ฆญ ๋ฐ์ ๋๋ฌธ์..๋ฌธ์ ๋ค์ด ๋๋ถ๋ถ ๋ฐ์ํ๋๊ฒ์ผ๋ก ๋ณด์ฌ์ง๋๋ผ.. ์ํ! ๊ทธ๋ ๊ตฌ๋, ๋ผ๊ณ ๋ค์ ํ๋ฒ ๋๋ ํ... ์ฐ๋๋๋ก ๊ทธ๋ฅ 'ExitProcess' ์ด๊ฑฐ ์ฌ์ฉํ์๋ค. ๋! ๋ฉ์ธ ๋ค์ด์ผ๋ก๊ทธ::OnInitDialog()์์ ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํ๊ณ ์ถ๋ค.OnClose๋ ๊ธฐํ ๋ฉ์๋๊ฐ ๋จน์ง ์๊ฑฐ๋ ๋จน์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ถฉ๋ ์ค๋ฅ๋ฉ์์ง๊ฐ ๋์จ๋ค.exit(0);๋ฅผ ๋ฃ์ด์ค๋ ๋๋ ๋น์ ์์ ์ธ terminated๋ผ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๋ค. ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. ::SendMessage(this->m_hWnd, WM_CLOSE, NULL, NULL);ํน์ ::SendMessage(GetSafeHwnd(), WM_CLOSE, NULL, NULL..
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/C, CPP, MFC
timeSetEvent ์ ์น๊ตฌ๋ค
์ดํ์งธ, ํ๋ก๊ทธ๋จ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ฃผ๋๊ฑธ ํ์ธํ๋ ๋ถ๋ถ์ด ์๋๋ฐ (์ฌ์ค ์ด๋ถ๋ถ๋ ๋ชฐ๋๋ค..๋ด๊ฐ ๋ง๋ ๊ฒ ์๋๋ใ
ใ
)๊ณ์ ๋ฌดํ๋ฃจํ ๊ฑธ๋ ธ๋์ง '์๋ต์์' ์ผ๋ก๋๋ํ ๋
์ ๊ฐ์ผ๋ ๋๊พธ๊ฐ~ ์์ด!!!!!!!! ์ด๋ฆฌ๋ณด๊ณ ์ ๋ฆฌ๋ณด๊ณ ์ด๋ถ๋ถ์ผ๊บผ๋ผ๊ณ ์์์ ๋์๋ค.. WaitForSingleObject ์์์ ํ์ง๋ง, ์ญ์๋... ์ด๋
์๊ณผ ๊ฐ์ด ๋๊ณ ์๋ ๋
์์ด ๋ฒ์ธ์ด์๋ค.timeSetEvent์ด๋์ด~!!! ์ฌํ์ด 1์๊ฐ์ด์ ๊ฑธ๋ฆฌ๋.. ใ
ใ
์ง๋ฃจํด~ WaitForSingleObject ์์ ๋ฐ์์ผ๋๋๋ฐ ๋ฐ์ง๋ฅผ ๋ชปํ๋.. ์ฐธ๊ณ : WaitForSingleObject ์! ๊ทธ๋ผ timeSetEvent์ ๋ํด์ ์์๋ณด์.๋ฉํฐ๋ฏธ๋์ด ํ์ด๋จธ๋ก ์์ฃผ์์ฃผ ๋์ ์ ํ๋์ ํ์ด๋จธ์ด๋ค.์ผ์ ํ ์ฃผ๊ธฐ๋ง๋ค ํ์๋ ์ฝ๋ฐฑ ํจ์๋ ์ด๋ฒคํธ๋ฅผ ํธ์ถ ํ๋ค. ..
Computer/ETC
Thread(์ค๋ ๋)
๋ฉ์ธ์ค๋ ๋ ์ธ์ ๋ค๋ฅธ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ๋ก ๋์ํ ํ์์ฑ์ ๋๋ผ๊ฒ๋๋ค.์ด๋ด๋ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ ๋
๋ฆฝ์ ์ธ ๋์์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.์ค๋ ๋๋ฅผ ๋ถ๋ฆฌํ์ง ์๊ณ ๋ฉ์ธ์ค๋ ๋๋ก๋ง ์ด์ฉํ๋ค๋ฉด ๋ค๋์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ฐ, ๊ด๋ฆฌํ๋ ๋ถ๋ถ์์ ๋์์ ์คํ์ค์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ๊ฒ๋ค์ ํ์ง ๋ชปํ๊ณ ๊ทธ ๋์์ด ๋๋ ๋ ๊น์ง ๊ธฐ๋ค๋ ค์ผํ๋ค. ์ค๋ ๋๋ ๋ฉ์ธ์ค๋ ๋์ ๋
๋ฆฝ๋ ๋์์ด๊ธฐ ๋๋ฌธ์ ๋ฉค๋ฒ๋ณ์๋ ํด๋นํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์ด์ฉํด์ ์ ๊ทผํด์ผํ๋ค.์ค๋ ๋ ํจ์ ์์์ ํด๋นํด๋์ค์ ๋ณ์๋ ํจ์๋ก ๋ฐ๋ก ์ ๊ทผํ ์ ์๋ค. .h ํค๋//ํ์
์ UINT๋ฅผ ํด์ผ ํ๊ณ ๋งค๊ฐ๋ณ์ lParam์ ๋๊ฒจ ์ฃผ์ด์ผ ํ๋คstatic UINT ThreadProc(void *lParam); .cpp ๊ตฌํAfxBeginThread(ThreadProc, this); nNum1..