본문 바로가기
728x90
반응형

프로그래밍56

사용자 입력 글자수 제한하기 SendMessage(hEdit[2], EM_LIMITTEXT, (WPARAM)1, 0); 윈도우 핸들, EM_LIMITTEXT, 제한할 글자 수, NULL 2014. 7. 4.
C++ WinForm Frame 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394#include //콜백함수LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);LRESULT OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam);LRESULT OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam);LRESULT OnPaint(HWND hWnd, WPARAM .. 2014. 7. 4.
IP 주소 정수 변환(IP to INT, INT to IP) Colored By Color Scripter™1234567891011121314151617181920#include#include#include#includelong long IPtoINT(char *IP_ADDR){ long long ret = 0; char *oct; for (int i = 3; i>=0;i--){ oct = strtok(IP_ADDR, "."); ret += pow(256., i) * atoi(oct); IP_ADDR = NULL; } return ret;}int main(){ char ip_addr[24]; scanf("%s", &ip_addr); printf("%lld",IPtoINT(ip_addr)); return 0;} 58.184.70.1 이란 IP 주소가 있으면 58 *.. 2014. 7. 3.
소수 구하기 - 에라토스테네스의 체 Colored By Color Scripter™1234567bool Num[100000004] = { true, true }; for (i = 2; i 2014. 7. 3.
쓰레드 동기화와 WAIT_ABANDONED Colored By Color Scripter™12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include#include#include#include LONG gTotalCount = 0;HANDLE hMutex; unsigned int WINAPI IncreaseCountOne(LPVOID lpParam){ WaitForSingleObject(hMutex, INFINITE); gTotalCount++; puts("1st thread"); //ReleaseMutex(hMutex); return 0;} unsigned int WINAPI Increas.. 2014. 6. 2.
GetExitCodeProcess Colored By Color Scripter™1234#includeint main(){ return 100;}a.cpp Colored By Color Scripter™1234567891011121314151617181920212223#include#includeint main(){ STARTUPINFO si = { 0, }; PROCESS_INFORMATION pi; DWORD ret = 0, test; TCHAR path[] = L"a.exe"; si.cb = sizeof(si); puts("#"); CreateProcess(NULL, path, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); CloseHandle(pi.hThread); //WaitForSingleOb.. 2014. 5. 25.
(싱글 더블 와이드) 함수 정리 Generic-textSBCS (_UNICODE &_MBCS_UNICODE defined routine name MBCS not defined)defined _cgetts_cgets_cgets_cgetws_cgetts_s_cgets_s_cgets_s_cgetws_s_cputts_cputs_cputs_cputws_fgettcfgetcfgetcfgetwc_fgettchar_fgetchar_fgetchar_fgetwchar_fgettsfgetsfgetsfgetws_fputtcfputcfputcfputwc_fputtchar_fputchar_fputchar_fputwchar_fputtsfputsfputsfputws_ftprintffprintffprintffwprintf_ftprintf_sfprintf_sfprin.. 2014. 5. 25.
IPC MailSlot 메일 슬롯 Colored By Color Scripter™123456789101112131415161718192021222324252627282930313233#include#include#includeint _tmain(){ HANDLE hMailSlot; DWORD sz; hMailSlot = CreateMailslot( _T("\\\\.\\mailslot\\tmp"), 0, MAILSLOT_WAIT_FOREVER, NULL ); if (hMailSlot == INVALID_HANDLE_VALUE){ puts("메일 슬롯 생성 실패"); return -1; } while (1){ TCHAR msg[52] = { 0, }; if (!ReadFile(hMailSlot, msg, 50, &sz, NULL )){ _t.. 2014. 5. 25.
tchar.h Colored By Color Scripter™1234567#include#include#includeint main(){ _tprintf("T E S T "); return 0;} 옛날에 위처럼 코딩하고 왜 _tprintf가 안 되지? 라고 생각했었던 때가 있었다. _tprintf는 Colored By Color Scripter™12345#ifdef _UNICODE #define _tprintf wprintf#else #define _tprintf printf#endif 라고 정의 되어 있는데 왜 안 될까.. 이유는 바로 비쥬얼 스튜디오에서 사용자의 편의를 위해 기본적으로 _UNICODE를 정의해놨기 때문이였다. 따라서 _tprintf는 자동으로 wprintf로 바뀌었고, 그 인자는 유니코드 기반을 받.. 2014. 5. 13.
사용자 정의 에러 함수 _invalid_parameter_handler Colored By Color Scripter™1234567891011121314151617181920212223#include#include#include#include//에러 발생시 호출할 함수void InvalidParameterHandler(PCTSTR expression, PCTSTR function, PCTSTR file, unsigned int line, uintptr_t){ std::wcout 2014. 5. 1.
안전 문자열 함수 _tcscpy_s Colored By Color Scripter™12345678910#include#include#includeint main(){ TCHAR str[6]; wcscpy_s(str, _countof(str), L"123456"); printf("%S\n", str); return 0;} strcpy나 strcat 같은 문자열 함수에서 일어날 수 있는 BOF를 보완하기 위해 새로 만들어진 문자열 함수. 기존의 함수에 문자열 길이가 인자로 추가되어 들어간다. _countof() 메크로는 windows.h에 정의되어 있다. Colored By Color Scripter™1#define _countof(_Array) (sizeof(*__countof_helper(_Array)) + 0) 인자로 넣은 문자열의 길이.. 2014. 4. 30.
윈도우즈 에러 핸들링 GetLasterror / FormatMessage Colored By Color Scripter™1234567891011121314151617181920212223242526272829303132333435#include#includeint main(){ DWORD dwError = GetLastError(); HLOCAL hlocal = NULL; //언어 설정 DWORD systemLocale = MAKELANGID(LANG_KOREAN, SUBLANG_KOREAN); FormatMessage( //운영체제에 정의된 에러 코드를 가져온다. FORMAT_MESSAGE_FROM_SYSTEM | //%를 자리 표시자로 사용 안 함(%s, %c 등을 무시). FORMAT_MESSAGE_IGNORE_INSERTS | //메모리 공간을 할당 FORMAT_MES.. 2014. 4. 30.
728x90
반응형