본문 바로가기

컴퓨터219

별로 바꾼 것도 없는데 갑자기 에러가 수십, 수백개 날 때 글에 대한 공지 만약 검색 엔진에 컴파일 에러 메세지를 입력하여 이 글을 읽게 되었다면, 에러 메세지와, 에러가 난 코드를 답글로 달아 주세요. 같이 풀어 봅시다. 코드의 아주 일부만 바꾸었을 뿐인데 갑자기 없던 에러가 몇 십 개, 몇 백개 날 때가 있다. 그 때는 주로 pre-compiler에 의한 문제로, 코드 상에 잘못 주석처리된 부분이 있다거나, 코드 중간에 이상한 문자가 뜬금없이 들어가 있을 때이다. Visual Studio의 경우, F4를 눌렀을 때 찾아가는 위치가 실제 에러의 원인이 되는 곳과는 전혀 다른 곳이라는 점. 예를 들면 이런 경우다. --------------------Configuration: test - Win32 Debug-------------------- Compiling.. 2009. 12. 27.
CTreeCtrl 에서 check box를 집어 넣고 다루기 VC++ 6.0 IDE로 CTreeCtrl control을 집어 넣은 후 property 대화 상자를 통해 tree control의 property를 설정하면 제대로 작동하지 않는 경우가 있으므로, 직접 코드로 집어 넣는다. VC++ 9.0 (Visual Studio 2008) 의 경우에는 CTreeCtrl이나 CListCtrl 의 경우 속성 대화 상자에 모든 속성이 나와 있지는 않다. 즉, 코드상으로 변경시켜 줄 수 있는 속성이 속성 대화 상자에 나와 있지 않는 것이 있으므로 직접 코드로 작성해 주는 편이 낫다. // check box를 트리에 추가하기 위해서는 TVS_CHECKBOXES 속성을 setting 해야 한다. // _treeResult가 CTreeCtrl 변수의 instance 이름이다. .. 2009. 12. 27.
프로그램이 플로피 디스크를 읽는 것 방지 컴퓨터에 있는 드라이브를 전부 나열하는 프로그램들은 종종 각 드라이브에 있는 가장 첫번째 디렉토리 읽기를 시도한다. 이럴 경우 플로피 디스크 드라이브에까지 이와 같은 시도를 하는 프로그램을 구동시키면 '끅!' 과 같은 소리가 나고 플로피 디스크를 읽기 시도한다. 이와 같은 일을 피할 수 있는 방법은 매우 간단한다. 즉, // 사용중인 모든 드라이브 문자열을 얻어 간다. DWORD logicalDrives = GetLogicalDrives(); unsigned int i = 0; do{ // 사용중인 드라이브 문자열 각각에 대하여 if((logicalDrives & 1) != 0){ CString strDrive = ""; // 문자열을 setting 한다. strDrive.Format("%c:\\",i+.. 2009. 12. 27.
2차 다항식 회귀 (polynomial regression of order 2) 회귀 (regression) 이란, 주어진 데이터 (xk,yk) 가 함수 y=f(x) 로부터 측정된 것이란 가정 하에, 주어진 데이터에 가장 잘 맞는 함수의 변수를 찾는 것을 의미한다. 다시 말해, 주어진 데이터 집합 { (x,y) }k = { (x1,y1), (x2, y2), (x3, y3), ..., (xN,yN) } 이 있고, 이 데이터가 y = ax + b 의 선형식으로부터 측정된 것이라 가정하였을 때, 데이터와 실제 함수와의 오차를 가장 작게 하는 a 와 b 는 무엇일까? 이 값을 찾아 내는 것이 regression 이고, 일반적으로 함수 f 를 다항식으로 가정하였을 경우 polynomial regression 이라 한다. 예를 들면 다음과 같다. 이와 같은 것을 수학적으로 나타내면 다음과 같다.. 2009. 12. 27.