본문 바로가기

Programming267

0122 - 서비스 프로그래밍 (1) *서비스프로그래밍 -메인이있긴하나 메인이메인이아니다. -함수호출하지않고 콜백함수가있다. -제약이 많지만 권한이 시스템 권한이다. 2009. 1. 22.
0121 *레지스트리 : 기존의 ini파일을 옮겨놓은것 *레지스트리 함수 1)Create HKEY hKey= ::RegCreateKeyEx(HKEY_CURRENT_USER,내키경로 , 0, NULL, REG_OPTION_NON_VOLITILE, KEY_ALL_ACCESS, NULL, &hKey, NULL); //오픈해줌 ->이건 나중에 중복되면 Open해줌 hKey를 사용후에는 반드시 닫을것 2)write ::RegSetValueKey(key핸들, key값, NULL, REG_SZ, (BYTE*)문자열,문자열길이*sizeof(TCHAR) 3) Open ::RegOpenKeyEx(HANDLE hkey, LPCSTR subkey, DWORD option, REGSAM regsam, &hKey) *UAC의 권한과정 알.. 2009. 1. 21.
0120 * ::EnumProcesses(저장소,크기,저장갯수) : 시스템에서 현재 수행중인 프로세스들의 리스트를 가져온다. HANDLE hProcess = ::OpenProcess(flag,false,pid); flag = PROCESS_QUERY_INFORMATION : 프로세스정보퍼미션얻기 PROCESS_VM_READ : 가상메모리 읽기권한 ::GetModuleFileNameex(HANDLE,NULL,buffer,Name) : 모듈이름 가져오기. =>커널에서 드라이버를 가지고 수행되는 것이 있다. 그것을 이용하자. *메시지 후킹하기 - PE파일(실행파일임)을 찾아서 뒤져보자. -런타임시 가상메모리 주소 변경 -> 많이쓰인다. -IAT(Import Address Table)을 런타임시 변경 - 윈도우실행파일의.. 2009. 1. 20.
0119 *CriticalSection, Mutex, Semaphore, Event : Kernel Object. (Ring 0에서 의미있음) + ::WaitForSingleObject(), ::WaitForMutexObject(); 이건 Barrier임 자기 자신의 종료 이벤트도 기다린다. *InitInstance의 시작부분이 실행에 필요한 것을 로딩한다. *CEvent EventUpdate(FALSE,FALSE,_T("EVENT_NPS_UPDATE")); ::WaitForSingleObject(EventUpdate.m_hObject, INFINITY); CWnd* pMain = AfxGetMainWnd(); ::PostMessage(pMain->m_hWnd, UM_UPDATEAPP); or CWinApp* p.. 2009. 1. 19.
STL - Components * STL의 6가지 컴포넌트 Container, generic algorithm, iterator, function object, adaptorm allocator *container 컨테이너 : 객체들의 컬렉션을 저장하는 객체를 컨테이너라고함(STL에서) -시퀀스 컨테이너와 정렬연관 컨테이너로 구성 -시퀀스 컨테이너 : vector(임의접근,가변길이,상수시간), deque(가변길이,상수시간), list(가변길이, 선형시간접근검색,삽입/삭제에대해 상수시간) reverse알고리즘 : 시퀀스 순서 뒤집을 때 사용함. *정렬관련 컨테이너 - set : 유일키를 지원하고 원하는키 빠르게 찾음 - multiset 중복키를 지원 원하는 키를 빠르게 찾음 - map : 유일키를 지원하고 그 키로 원하는 객체(타입 T.. 2009. 1. 16.
STL - Template? 템플릿 사용목적 : 간단하게 말해서 범용성을 높이기 위한것이다. *클래스 템플릿 : 전용 가능한 저장 컨테이너 작성에 유리하다. 예) 만약 int와 char를 멤버로 가지는 클래스와 float,int를 멤버로 가지는 클래스를 선언해보자. class Ci_c_pair{ public: int first; char second; } 와... class Cf_i_pair{ public: float first; int second; } 이렇게 구성될 수 밖에 없을 것이다.. 이것을 템플릿으로 구성해보자. template class pair{ public: T1 first; T2 second; } 이렇게 선언하면 된다. 생성 호출은? pair pair1(1,'n'); pair pair2(1.2,2); 이런식으로 생.. 2009. 1. 16.
728x90