반응형 SB 리치 패밀리5727 [개발/VC] 맵(Map)클래스 사용법 [C++]맵(Map) Class 사용법 [출처] 인터넷 1. 맵(Map)이란? 맵(Map)은 set, multiset, multimap등과 같이 STL이 제공하는 자료형 중 하나이다. 2. 맵(Map)의 특징 첫번째, 두 개의 요소가 한 쌍을 이루어 하나의 자료를 이룬다. 첫 번째 요소는 first로써 인덱스이고, 두 번째 요소는 second로써 데이터이다. 그러므로, 인덱스와 데이터가 분리된 상태이며 독립적으로 자료형을 지정해줄 수 있다. 두번째, 반복자(iterator)와 배열 첨자를 사용하여 접근할 수 있다. 세번째, 자동적으로 정렬된 상태를 유지한다. 만약에 정렬할 수 없다면 출력 순서는 먼저 입력된 것이 가장 나중에 출력된다. 네번째, 인덱스가 중복되서 추가를 한다면, 기존의 데이터는 없어지고 .. 2011. 9. 22. [개발/MFC] HINSTANCE 구하기 1. hWnd를 알면, 그걸로 hInstance를 얻어올 수 있습니다. GetWindowLong / GetWindowLongPtr에서 GWLP_HINSTANCE 2. AfxGetApp() 를 통해서 App 의 포인터를 얻어온 다음에 m_instance 멤버변수 3. HINSTANCE hInst= GetModuleHandle(NULL); 콘솔에서 윈도 뛰울때 자주 씁니다. 4. HINSTANCE AfxGetInstanceHandle( ); 5. dll의 메모리를 이용한 HINSTANCE 구하기 종종 DLL 내부에서 window를 띄워야하시겠다는 분이 있어서 찾던중에 Detecting a HMODULE/HINSTANCE Handle Within the Module You're Running In 이라는 co.. 2011. 9. 20. [개발/MFC] 중복실행 방지하기 [개발/MFC] 중복실행 방지하기 TCHAR szAppName[] = _T("sbrich"); HANDLE hMutex = NULL; bool IsSecondInstance() { bool isSecondInstance= false; hMutex= CreateMutex(NULL, NULL, szAppName); int iLastError = GetLastError(); if(hMutex && (ERROR_ACCESS_DENIED == iLastError || ERROR_ALREADY_EXISTS == iLastError)) { ReleaseMutex(hMutex); hMutex= NULL; isSecondInstance= true; } return isSecondInstance; } int main() .. 2011. 9. 20. [개발/MFC] GetLastError(), System Error Codes (0-999) GetLastError()함수로 얻게 되는 에러코드로 아래으 에러코드에 대한 에러 메세지의 의미를 알 수 있다. **System Error Codes (0-499) The following table provides a list of system error codes ( errors 0 to 499). They are returned by the GetLastError function when many functions fail. To retrieve the description text for the error in your application, use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag. Table with 2 c.. 2011. 9. 20. [개발/VC] IERefreshElevationPolicy() 함수 인터넷 익스플로러 보호모드에서 Internet Explorer의 Protected Mode(보호모드)에서 activeX나 BHO 설치 후 레지스트리 값 수정후 IE를 재시작해야 하는 경우가 있는데 IERefreshElevationPolicy() 함수를 사용하면 그렇게 하지 않아도 된다고 합니다. UAC 환경(Windows Vista, Windows 7)의 IE7, IE8 보호모드에서 동작하는 ActiveX에서 실행 파일을 실행할 경우(브로커 프로세스) 비보호 모드로 열린다는 보안 경고창이 나타납니다. 이 문제를 해결하려면 아래와 같이 자동 권한 상승 정책을 레지스트리에 등록해주어야 합니다. {347DAD60-9849-4921-89B6-16FA1B7936CC}는 임의의 GUID값입니다. [HKEY_LOCAL_MACHINE\SOFTWAR.. 2011. 9. 20. [개발/MFC] 비주얼스튜디오 디버깅 메세지 출력하기 ///////////////////////////////////////////////////////////////////////////// // 디버그 로그 ///////////////////////////////////////////////////////////////////////////// void DebugLog(const char *format, ...) { va_list vl; FILE *pf = NULL; char szLog[512] = {0,}; va_start(vl, format); wvsprintf(szLog, format, vl); va_end(vl); // sends a string to the debugger for display. show me the visual studio o.. 2011. 9. 7. [IT/보안] 악성코드 진단 종류 [IT/보안] 악성코드 진단 종류 Rootkit(루트킷) 자기자신 혹은 다른 악성코드가 사용자로부터 발견되지 않도록 은폐기능을 수행하는 놈 - Backdoor (백도어) 공격자가 감염된 사용자의 시스템에 접속할 수 있게 하는 놈 - Trojan (트로이 목마) 자체적인 확산기능은 없고, 사용자 몰래 악의적인 기능을 수행 - Trojan-Dropper (트로이목마-드롭퍼) 악성코드에 포함된 추가적인 악성코드를 설치 - Trojan-Exploit (트로이목마-익스플로잇) 운영체제나 특정 프로그램의 취약점을 이용하여 공격하는 악성코드 - Trojan-Downloader (트로이목마-다운로더) 추가적인 악성코드를 인터넷이나 네트워크를 통하여 다운로드하여 설치 - Trojan-PWS (트로이목마-패스워드스틸러) .. 2011. 9. 7. [작업] 악성코드 분류를 회피하기 악성코드에 한 번 잡히게 되면 악성코드 오진 신고를 하거나 새로 만들게 된다. 이 때 여러가지 기술이 있는데... 회피하는 방법 여러가지를 만들어 둬야겠다. 알약을 보면 기득권 같다..권한은 많고 책임은 적은 악성코드 분류 정보가 없다... 마음대로 진단한다는 건지... ㅜㅜ; 2011. 9. 6. [개발/delphi] 중복 실행 방지 델파이로 중복 실행 방지 구현 소스 골라서 쓰자. =============================================================== #1 program Project; uses Forms, Windows, Dialogs, uMain in 'uMain.pas' {frmMain}; var hMutex : THandle; {$R *.res} begin hMutex := CreateMutex(nil, true, 'MajorProj'); // your mutex If (hMutex 0) and (GetLastError = 0) Then Begin Application.Initialize; Application.MainFormOnTaskbar := true; Application.C.. 2011. 9. 1. 이전 1 ··· 522 523 524 525 526 527 528 ··· 637 다음 반응형