본문 바로가기

프로그래밍305

Memory Leak 탐지방법 김정현입니다. Memory Leak에서 발생위치를 탐지 하는 방법입니다. Leak 발생 시 출력창에 아래와 같은 메시지가 출력 됩니다. 이렇게 메모리 누수가 발생 할 때, 해당 주소에 메모리를 할당한 시점에 BreakPoint를 걸어주어 해당 메모리 위치를 찾을 수 있는 방안입니다. 프로그램의 시작점 다음 함수를 사용합니다. 저의 경우엔 (App클래스의 InitInstance함수 첫줄에 아래 함수를 사용 하였습니다.) _CrtSetBreakAlloc(블록번호); 예를 들어 위와 같은 Memory Leak 발생시 _CrtSetBreakAlloc(18)과 같이 프로그램 시작점에 호출하면, 해당 블록번호가 생성될 때 브레이크 되기 때문에 발생 위치를 짐작 할 수 있습니다. 이상입니다. 출처 : http://g.. 2011. 8. 19.
Cab 파일 작성법 (ocx파일 배포하기) 출처 : http://jys92.com.ne.kr/VisualC/MakeCab.htm 배포하기(Cab 파일 작성법) ActiveX 컨트롤(.OCX)을 웹페이지에 포함하여 다른 PC에서 그 페이지를 열면 제대로 동작하지 않는다. 제대로 동작하게 하기 위해서는 ActiveX 컨트롤을 각 PC에 복사하고 그 컨트롤을 레지스트리에 등록해주어야만 한다. 또한 필요한 DLL이 있다면 그 DLL 또한 복사해 주어야한다. 이 일련의 작업들을 자동으로 해주는 것이 Cab 파일이다. Visual Basic에서는 배포 마법사라는 프로그램이 있어 이 Cab 파일을 쉽게 만들 수 있다. 그러나 Visual C++은 .... 필자가 근 1년을 헤매다가 겨우 찾았다. ActiveX 컨트롤이 만들어진 상황에서 Cab 파일을 만드는 .. 2011. 8. 3.
[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.
[asp.net] Control의 Postback 막기 아~ 간만에 삽질이구나... asp.net 이제 막 걸음마 하려다가 중단하고 다시 잡았으니.. 아무튼!~ 저번글에도 봤듯이.. Postback 이란... 클라이언트의 요청이 있을 때마다 새로이 서버가 페이지를 만들어 보내주는 현상이다. 따라서, aspx페이지에서 과 같은 컨트롤에서 클릭이벤트나 다른 이벤트가 일어날 경우 기본적으로 서버는 다시 페이지를 생성하여 클라이언트에 보내주고, 클라이언트는 사용자에게 보여준다. ( 서버에 보낼 필요 없고 ActiveX로만 보내면 됨 this.btnUpLeft.Attributes.Add("Onclick", "return false;"); } 요런구문으로 수행하면 되것다. postback을 막는건 아무래도 버튼 이벤트를 서버로 보내지 않고, ActiveX나 여타 다른 .. 2011. 7. 21.
[ASP.net]Postback의 의미 ASP.NET을 하려면 이 개념을 모르고 지나가면 안되서 먼저 적어볼까 합니다. 포스트백이란 default.aspx란 페이지가 웹 서버에게 다시 default.aspx란 페이지를 요청하는 프로세스입니다. (asp.net은 디폴트 메인 페이지의 이름이 default.aspx입니다) 웹 프로그래밍을 한번이라도 해보셨다면 바로 이해를 할 거 같은데요^^ 한 페이지에서 다른 페이지로 이동을 하는것이 아니라 submit 같은 버튼을 통해 다시 자신에 페이지가 새로고침이 일어나는 현상을 말합니다. 예제를 만들어 보도록 하겠습니다^^ 다음 코드를 보게 되면 Page가 로딩되면서 일어나는 이벤트의 핸들러인 Page_Load가 보일 것입니다. Button1_Click이라는 이벤트핸들러도 보이죠. 대략적으로 텍스트박스에 .. 2011. 7. 21.
[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.