본문 바로가기

프로그래밍/C++58

Memory Leak 탐지방법 김정현입니다. Memory Leak에서 발생위치를 탐지 하는 방법입니다. Leak 발생 시 출력창에 아래와 같은 메시지가 출력 됩니다. 이렇게 메모리 누수가 발생 할 때, 해당 주소에 메모리를 할당한 시점에 BreakPoint를 걸어주어 해당 메모리 위치를 찾을 수 있는 방안입니다. 프로그램의 시작점 다음 함수를 사용합니다. 저의 경우엔 (App클래스의 InitInstance함수 첫줄에 아래 함수를 사용 하였습니다.) _CrtSetBreakAlloc(블록번호); 예를 들어 위와 같은 Memory Leak 발생시 _CrtSetBreakAlloc(18)과 같이 프로그램 시작점에 호출하면, 해당 블록번호가 생성될 때 브레이크 되기 때문에 발생 위치를 짐작 할 수 있습니다. 이상입니다. 출처 : http://g.. 2011. 8. 19.
[C++] VS2010/Windows7에서 ActiveX 개발시 어쩌다 만나게 되는 오류 해결방법 원인은 UAC? error MSB8011: 출력을 등록하지 못했습니다. 사용자 단위 리디렉션을 사용하도록 설정하거나 높은 권한으로 명령 프롬프트에서 구성 요소를 등록하십시오. 는 아래를 참조 Starting from Windows Vista, including Vista, Win2008 Server, Windows7, build process cannot write to HKEY_CLASSES_ROOT (HKCR) hives unless the process is started as administrator. To be able to register in non-administrator mode, VS2008 and VS2010 offer the feature of "registrer per user"... 2011. 7. 27.
VS2010에서 웹서비스 참조 방법 설명 VS2010에서 웹서비스 참조 방법 설명 대략적인 설명 : VS2008에는 C# 및 C++에서 웹참조 메뉴가 있다. 하지만 VS2010에는 C#에서만 웹참조 메뉴가 있을 뿐, C++에서는 웹참조 메뉴가 없다. 따라서 다음과 같은 방식으로 방안을 모색해 보았다. VS2008에서 웹참조 구성 VS2008에 자동으로 생성된 파일을 VS2010에서 새로 프로젝트를 구성하여 복사 VS2010에서 수동으로 .Net Dll 참조추가 -따라 하기- 2008에서 프로젝트 -> 마우스 우클릭 -> 웹참조 추가 를 이용하여 웹서비스의 주소로 웹서비스를 프로젝트에 추가한다. 파일 탐색기로 볼 경우 아래와 같이 자동으로 파일이 추가되었음을 알 수 있다. VS2010프로젝트의 구성 속성에서 웹서비스를 사용하기 위해 공용언어 런타.. 2011. 7. 26.
[C+]현재 실행중인 모든 Window 이름 및 경로 가져오기 #include #pragma comment(lib, "PSAPI.LIB") void CtestFindWindowTDoc::FindRunningPgmNameAndPath() { //현재 실행되고 있는 프로그램들의 경로를 구한다. HWND h_wnd = FindWindowEx(NULL,NULL, NULL, NULL); CString strTitle; CString strAppPath; //CFileStatus status; char szTitle[MAX_PATH]; char szPath[MAX_PATH]; while(h_wnd != NULL) { if(IsWindow(h_wnd) && IsWindowVisible((h_wnd))) { GetWindowText(h_wnd, szTitle, MAX_PATH);.. 2011. 7. 12.
[C++] 하위 폴더 자동 생성 //하위에 폴더가 없으면 차례차례 만들어주는 함수 void CFtpFileTransfer::CreateNyaongeDir(char* Path) { char DirName[256]; //생성할 디렉토리 이름 char* p = Path; //인자로 받은 디렉토리 char* q = DirName; while(*p) { if (('\\' == *p) || ('/' == *p)) //루트디렉토리 혹은 Sub디렉토리 { if (':' != *(p-1)) { CreateDirectory(DirName, NULL); } } *q++ = *p++; *q = '\0'; } CreateDirectory(DirName, NULL); } 2011. 6. 30.
연산자 중복정의(오버로딩)의 바른예 연산자 중복정의... 자꾸 대충 정의해서 편하게 쓰려는데... 내가 만든 중복정의 같은 경우는 삼항 대입연산같은게 안된다고 한다. 예) a = b = c m_strSensorPath = rInfo.m_strSensorPath; memcpy(this->m_szSensorName, rInfo.m_szSensorName, SENSOR_MODEL_LENGTH); return *this; } }; 2011. 6. 26.
현재 실행중인 모든 윈도우 나열하기^^ 하고자 했던거능~ 현재 실행중인 Window의 캡션을 얻어와 내가 찾고자 하는넘이면 닫아버리고 재실행 하기 위해 사용 // CHvsDasUpdaterDoc 명령 void CHvsDasUpdaterDoc::FindPgm() { HWND h_wnd = FindWindowEx(NULL,NULL, NULL, NULL); while(h_wnd != NULL) { if(IsWindow(h_wnd) && IsWindowVisible((h_wnd))) { char szTitle[MAX_PATH]; GetWindowText(h_wnd,(LPSTR)&szTitle, MAX_PATH); TRACE("현재 실행중인 Window Title : %s\n", strTitle ); } h_wnd = FindWindowEx(NULL,.. 2011. 6. 20.
[MFC] 레지스트리 생성, 삭제, 쓰기, 읽기 함수 정리 는 http://whoim.tistory.com/55 이동해보면~ ㄱㄱ싱 registry관련 API 함수 RegCloseKey() RegConnectRegistry() RegCreateKey() RegCreateKeyEx() RegDeleteKey() RegDeleteValue() RegEnumKey() RegEnumKeyEx() RegEnumValue() RegFlushKey() RegGetKeySecurity() RegLoadKey() RegNotifyChangeKeyValue() RegOpenKey() RegOpenKeyEx() RegQueryInfoKey() RegQueryMultipleValues() RegQueryValue() RegQueryValueEx() RegReplaceKey() Reg.. 2011. 6. 9.
MFC Dll 사용에 관해 MFC Dll 사용에 관해 DLL이란... (By MSDN : http://msdn.microsoft.com/ko-kr/library/1ez7dh12(VS.80).aspx ) DLL(동적 연결 라이브러리)은 여러 함수의 공유 라이브러리로 사용되는 실행 파일입니다. 동적 링크를 사용하여 프로세스에서 해당 프로세스의 실행 코드에 포함되지 않은 함수를 호출할 수 있습니다. 함수의 실행 코드는 DLL에 있으며, DLL에는 이것을 사용하는 프로세스와는 별도로 컴파일, 링크 및 저장되는 하나 이상의 함수가 포함되어 있습니다. DLL을 사용하여 데이터와 리소스를 쉽게 공유할 수 있습니다. 즉, 여러 개의 응용 프로그램이 메모리에 있는 하나의 DLL 복사본 내용을 동시에 액세스할 수 있습니다. 동적 링크는 DLL 함수.. 2011. 6. 1.