기본 콘텐츠로 건너뛰기

11월, 2006의 게시물 표시

VB용 ocx에 사용자 정의 속성 추가

먼저 VB의 추가기능 관리자에서 ActiveX 컨트롤 인터페이스 마법사 를 로드합니다. ActiveX 컨트롤 인터페이스 마법사 를 실행합니다. 이 화면은 그냥 건너뜁니다. 우리는 사용자 속성을 추가할것이기 때문에 이 화면도 건너뜁니다. 기존에 추가시킨 속성이 하나 보이는군요. 그럼 추가 버튼을 눌러 새로운 속성을 추가시켜 봅시다. 메서드를 추가시킬려면 형식에서 메서드(M)을 선택하시면 됩니다. 여기서는 MaterialBalanceFile과 EqlistFile 두개의 속성을 새롭게 추가시켰습니다. 추가시킨 속성의 데이터 형식을 설정합니다. 데이터 형식까지 설정을 마쳤으면 모든 작업이 끝났습니다.

엑셀 sheet를 복사하여 다른 엑셀 파일에 붙이기.

- 코드 - Dim XL1, XL2 As Application Dim wb1, wb2 As Workbook Dim s1, s2 As Worksheet Set XL1 = CreateObject("Excel.Application") XL1.Visible = False Set wb1 = XL1.Workbooks.Open(txtOldFile.Text) 'material balance file; Set XL2 = CreateObject("Excel.Application") XL2.Visible = False Set wb2 = XL2.Workbooks.Open(txtNewFile.Text) 'equipment list file' 'material balance sheet를 eqlist의 제일 마지막에 복사' XL1.Worksheets("Material").UsedRange.Copy Set NewSheet = XL2.Worksheets.Add(After:=XL2.Worksheets(XL2.Worksheets.Count)) NewSheet.Range("A2").PasteSpecial Paste:=xlValues NewSheet.Name = "Material" XL2.DisplayAlerts = False wb2.SaveAs (txtNewFile.Text) XL2.DisplayAlerts = True XL1.DisplayAlerts = False XL1.Quit XL2.Quit Set XL1 = Nothing Set XL2 = Nothing

auto_ptr 사용.

발구르기 | 발구르기 http://blog.naver.com/yaiin0911/120022027021 [WinApi.co.kr] 36-3.auto_ptr 36-3-가.자동화된 파괴 C++의 클래스는 파괴자라는 특별한 함수를 가지는데 이 함수는 객체가 파괴될 때 자동으로 호출된다. 그래서 객체가 동적으로 메모리를 할당하거나 시스템 자원을 사용하더라도 파괴자에 정리 코드를 작성해 놓으면 별도의 조치가 없더라도 객체가 사라질 때 해제 작업을 하도록 되어 있다. 파괴자의 이런 동작은 굉장히 편리한데 지역 객체일 경우 함수안에서 마음대로 만들어 쓰다가 그냥 나가기만 하면 된다. 범위를 벗어난 변수는 스택에서 제거되며 이때 객체의 파괴자가 호출되어 자신이 사용하던 자원을 알아서 정리하는 것이다. 앞 절에서 연구해 본 string 클래스를 생각해 보면 파괴자가 얼마나 편리한가를 알 수 있다. string 객체는 가변 길이의 문자열을 저장하기 위해 버퍼를 동적으로 할당해서 관리하는데 개발자가 신경쓰지 않아도 이 메모리는 자동으로 회수된다. 이런 면을 보면 파괴자는 역시 편리한 함수이다. 그러나 파괴자는 스택에 정적으로 할당된 객체에 대해서만 동작하며 동적으로 할당한 메모리에 대해서는 책임지지 않는 문제점이 있다. 다음 예제를 보자. 예제 : dynalloc #include <iostream> using namespace std; void main() { double *rate; rate=new double; *rate=3.1415; cout << *rate << endl; // delete rate; } 실수형 변수를 가리키는 rate 포인터를 선언하고 이 포인터에 실수형의 길이만큼 동적 할당하여 그 번지를 저장했다. 이렇게 되면 *rate는 실수형

프로그램 일반

프로그램 개발시 에러를 만났을때 참고 견디는 구조보다 에러를 뱉어내는 구조로 작성하라. 에러를 무시하는 코드는 개발자에게 에러가 난 근본적인 원인을 찾아 그 에러에 대한 대책을 수립할 수 있는 기회를 근본적으로 박탈한다. 제때 에러를 수정할수 있는 기회를 잃어버려서 나중에 그 수많은 코드들을 헤집고 다녀야하는 수고를 해야만 한다.