Part Ⅰ. Visual C++ 개요 Chapter 01. 시작하기 ... 24 1. 이 버전의 새로운 점 ... 25 새로운 개발 환경 ... 26 속성 프로그래밍 ... 36 관리 환경 ... 36 .NET 프레임웍 ... 37 ADO.NET ... 39 C 언어 ... 39 ATL 서버 ... 40 웹 서비스 ... 40 웹 폼과 윈 폼 ... 40 엔터프라이즈 템플릿과 정책 정의 ... 41 2. 필요 항목 다운로드 ... 42 3. 알아두어야 할 도구들 ... 43 Visual Studio와 Platform SDK 도구 ... 43 CPU Stress ... 44 Depends ... 44 Process Viewer ... 50 ROT Viewer ... 52 ShellWalk ... 53 Spy++ ... 54 4. 워크스테이션 설정 생성 ... 60 5. 서버 설정 생성 ... 61 Chapter 02. 데스크탑 응용프로그램 개발 ... 64 1. 정보 제공 콘솔 응용프로그램 작성 ... 67 순수 코드 사용 ... 74 클래스 대신 Struct 사용 ... 75 관리 코드 사용 ... 75 가장 좋은 방법 선택에 관한 이해 ... 79 2. 대화 기반 응용프로그램 유틸리티 작성 ... 80 3. 단일 문서 응용프로그램, 텍스트 편집기 작성 ... 88 기본 응용프로그램 생성 ... 88 리소스 작업 ... 92 Chapter 03. 쓰레드를 이용한 작업 ... 108 1. 쓰레드의 사용 ... 110 응용프로그램 ... 111 DLLs ... 113 시스템 서비스 ... 114 2. 쓰레드의 종류 ... 114 Worker 쓰레드 ... 115 UI 쓰레드 ... 116 3. 중요 섹션의 이해 ... 117 4. 쓰레드의 안정 ... 118 5. 쓰레드를 이용한 데스크탑 응용프로그램 작성 ... 119 주 대화상자의 정의 ... 119 CUIThread 클래스의 생성 ... 121 쓰레드 대화상자의 추가 ... 123 Worker 쓰레드의 생성 ... 125 Threads 응용프로그램의 테스팅 ... 129 6. 쓰레드를 이용한 로컬 DLL의 작성 ... 130 DLl THread DLL의 생성 ... 131 DLLTest 응용프로그램의 생성 ... 134 Chapter 04. 그래픽 작업 ... 138 1. Visual C++ 그래픽 지원 ... 139 확장된 그래픽 지원 ... 140 Image Editoer의 사용 ... 141 표준 Win32 API 콜의 사용 ... 143 System.Windows.Forms 네임스페이스의 개요 ... 145 System.Drawing 네임스페이스의 개요 ... 146 2. 그래픽 데스크탑 응용프로그램의 작성 ... 146 비관리 코드의 사용 ... 147 관리 코드의 사용 ... 154 3. GIF 파일을 이용한 애니메이션 테크닉 ... 162 애니메이션 GIF의 생성 ... 162 애니메이션 응용프로그램의 설계 ... 166 Chapter 05. Active Directory 작업 ... 172 1. Active Directoy는 무엇인가? ... 173 인터페이스의 개요 ... 174 Active Directoy를 왜 이용하는가? ... 177 Active Directoy 프로그래밍의 문제점 ... 178 2. ADSI(Active Directoy Service Interface)의 이해 ... 180 일반 API 작업 ... 180 새 객체의 생성 ... 181 네임스페이스 작업 ... 182 3. Active Directoy 작업 ... 182 ADSI Viewer ... 183 보안 ... 186 바인딩 ... 187 사용자와 그룹 관리 ... 188 4. ADSI API 작업 ... 189 5. System.DirectoryService 네임스페이스 작업 ... 192 6. Active Directoy에 의존하는 COM+ 응용프로그램 작성 ... 195 컴포넌트 생성 ... 195 테스트 응용프로그램의 생성 ... 206 응용프로그램 테스트 ... 208 Chapter 06. 컴포넌트의 생성 ... 210 1. ActiveX 컨트롤 ... 211 MFC와 ATL 기반 컨트롤 ... 211 MFC ActiveX 컨트롤 예제 ... 213 ATL ActiveX 컨트롤 예제 ... 225 컨트롤 테스트 ... 240 2. 컴포넌트 테스팅 Aids와 테크닉 ... 242 Unregistering Your Control ... 242 ActiveX Control Test Container ... 243 OLE/COM Object Viewer ... 247 Part Ⅱ. Visual C++ .NET과 데이터베이스 관리 Chapter 07. Visual C++ 데이터베이스 기술 ... 252 1. ADO와 OLE-DB ... 253 OLE-DB의 이해 ... 254 ADO의 이해 ... 256 2. 데이터베이스 관리를 위한 Microseft의 새로운 비전인 ADO.NET ... 258 3. ODBC .NET : Microsoft는 기존 기술에 생명력을 불어넣었다. ... 260 사용자 및 시스템 DSN 작업 ... 261 파일 DSN 작업 ... 263 ODBC 트랜젝션 로깅 ... 265 4. ODBC, ODBC .NET, OLE-DB, ADO, 또는 ADO .NET은 언제 사용해야 하는가? ... 266 5. 알아야 할 데이터베이스 도구들 ... 268 Local Test Manager ... 269 ODBC Test ... 271 Rowset Viewer ... 274 Table Copy ... 276 6. Visual C++ 클래스의 개요 ... 278 Chapter 08. 비관리 데이터베이스 응용프로그램 구축 ... 280 1. 응용프로그램 호환성 : Visual Studio 6.0으로부터 이동 ... 281 응용프로그랢이 제공자를 찾을 수 없다 ... 281 프로젝트가 제대로 열리지 않는다 ... 281 Grids 작업 ... 282 2. OLE-DB 응용프로그램 작성 ... 284 OLE-DB 프로젝트의 생성 ... 284 폼 뷰의 설계 ... 287 OLE-DB에 화면 코드의 추가 ... 289 검색 루틴의 추가 ... 290 3. 응용프로그램에 보고서 추가 ... 295 인쇄의 어려움 ... 295 응용프로그램에 인쇄 기능 추가 ... 298 Chapter 09. 관리 데이터베이스 응용프로그램의 구축 ... 306 1. 관리 데이터베이스 응용프로그램 시나리오 ... 307 2. ODBC .NET의 이해 ... 309 ODBC와 ODBC .NET ... 309 ODBC .NET에 대한 요구사항 설치 ... 311 3. 관리 데이터베이스 응용프로그램의 작성 ... 312 Grid 뷰의 생성 ... 313 데이터 접근 코드의 추가 ... 320 프린트 기능의 추가 ... 327 Part Ⅲ. Visual C++과 온라인 컴퓨팅 Chapter 10. 인터넷 응용프로그램의 개발 ... 336 1. PDA 및 다른 대체 장치를 이용한 작업 ... 337 PDA에 대한 특별한 요구 ... 338 PDA를 위한 SOAP 얻기 ... 342 간단한 PAD 응용프로그램의 생성 ... 345 PDA 화면 이슈의 해결 ... 352 PDA 보안 이슈의 이해 ... 355 2. WAI(Web Accessibility Initiative)의 이해 ... 357 3. 웹 서비스 작업 ... 358 4. ASP .NET을 이용한 응용프로그램 작성 ... 359 Chapter 11. IIS(Internet Information Server) 작업 ... 364 1. ISAPI(Internet Server API)의 개요 ... 366 ISAPI의 실제 사용 ... 368 ISAPI와 ASP 또는 ASP .NET ... 370 필터와 익스텐션 간의 선택 ... 371 다섯 가지 ISAPI 클래스 작업 ... 372 2. SOAP의 개요 ... 373 SOAP의 HTTP 부분 보기 ... 375 SOAP의 XML 부분 보기 ... 376 SOAP 메시지 작업 ... 376 3. ISAPI 익스텐션의 작성 ... 383 프로그램 셀의 생성 ... 383 코드의 추가 ... 385 테스트 응용프로그램의 실행 ... 388 4. ISAPI 필터의 작성 ... 389 필터 옵션의 선택 ... 390 필터 셀의 생성 ... 391 ISAPI 필터의 설치 ... 392 ISAPI 필터의 테스트 ... 393 5. SOAP 응용프로그램의 작성 ... 394 컴포넌트의 생성 ... 395 WSDL 파일의 생성 ... 396 클라이언트의 생성 ... 397 Part Ⅳ. Visual C++ .NET과 Microsoft .NET Chapter 12. .NET Architecture 작업 ... 404 1. .NET의 개요 ... 405 2. IL(Intermediate Language) 보기 ... 410 3. 왜 훌륭한 언어를 바꾸는가? ... 413 최근 환경에서 Visual C++의 한계에 대한 요약 ... 414 안정성 문제 ... 415 .NET 프레임웍의 도전 ... 416 Visual C .NET이 어떻게 Stack UP하는가? ... 418 4. Visual C++과 C ... 419 동일한 기본 언어, 다른 개발 환경 ... 419 C이 해결할 Visual C++의 한계 ... 424 응용프로그램 목표에 의한 언어의 선택 ... 425 C의 업그레이드 시기 결정 ... 427 5. Common Language Runtime의 이해 ... 428 6. 기존 코드를 .NET으로 변환 ... 431 Chapter 13. 속성과 Visual C++ 프로그래밍 ... 434 1. 왜 속성인가? ... 435 2. 속성 형태의 이해 ... 436 ATL Server ... 436 COM ... 438 컴파일러 ... 440 IDL ... 441 OLE-DB Consumer ... 443 3. 속성 작업 ... 445 관리 컴포넌트 예제 ... 445 속성 ATL ActiveX 컨트롤 예제 ... 454 4. 속성 사용시 문제의 회피 ... 456 5. 속성 프로그래밍과 디버깅 ... 457 Chapter 14. 관리 코드 환경에서의 작업 ... 458 1. Windows Forms 작업 ... 459 2. Delegates 작업 ... 465 3. Metadata 작업 ... 470 맞춤 속성의 생성 ... 471 Metadata 보기 ... 474 Reflection의 사용 ... 476 State 정보 관리 ... 478 4. Property Browser 접근 ... 478 속성 페이지는 이제 그만 ... 479 형태 변환의 이해 ... 480 Part Ⅴ. 개발자 관점에서의 Visual C++ .NET Chapter 15. 보안성을 염두에 둔 설계 ... 484 1. 여러분을 위한 Windows2000 보안 작업 ... 486 내장된 보안 특성 ... 486 Access Control Editor 사용 ... 495 Security Configuration Editor 사용 ... 497 Windows 로그온 작업 ... 500 2. Windows 보안 API의 이해 ... 505 Windows 2000 보안 API 개요 ... 506 Cryptography(암호해독(작성)) API - 개요 ... 511 3. 인터넷 코드의 안전한 다운로드 확인 ... 515 Windows Verify Trust API 사용 ... 516 Windows Software Publishing Trust Provider의 이해 ... 518 Internet Component Download Mechanics ... 519 4. 보안 표준 ... 522 HTTP를 통한 Windows 2000 인증 ... 522 전자 서명 사용 ... 523 Kerberos ... 524 PKI(Public Key Infrastructure) ... 525 DPA(Distributed Password Authentication) ... 528 Chapter 16. 관리 툴 만들기 ... 530 1. 툴 종류에 대한 개요 ... 531 사용법에 따른 분류 ... 531 사용자와 환경에 따른 분류 ... 533 2. 어떤 종류의 툴을 사용한 것인지 결정 ... 534 3. 툴에 인터넷 액세스 제공 ... 535 4. MMC 스냅인 작성 ... 537 인터페이스의 개요 ... 537 스냅인 셀 생성 ... 540 약간의 코드 추가 ... 542 리소스 문자열 수정 ... 551 MMC 내의 스냅인 테스트 ... 551 5. HTML 액세스가 가능한 툴 작성 ... 553 Chapter 17. 도움말 파일 구축 ... 554 1. 어떤 종류의 도움말을 만들 것인지 결정 ... 556 2. 도움말 파일의 개요 ... 558 메뉴 플로우 ... 559 작업 ... 560 일반화된 메뉴/작업 접근 방식 ... 560 참조(Reference) ... 560 지침서(Tutorial) ... 561 실행 영역(Functional Area) ... 561 3. 용어사전의 중요성 ... 561 4. MHC(Microsoft Help Compiler) 사용 ... 562 도움말 파일에 특수 효과 추가 ... 566 Make 파일을 만들고 도움말 파일 컴파일하기 ... 570 5. Microsoft Help Workshop 사용 ... 573 프로젝트의 옵션 정의 ... 573 윈도우 정의 ... 576 도움말 항목 매핑 ... 579 도움말 파일 컴파일링 ... 580 6. 응용프로그램에 표준 도움말 추가 ... 581 7. HTML 기반의 도움말 패키지 생성 ... 583 다중 페이지 또는 단일 페이지? ... 583 접속 종류 ... 585 검색 능력 ... 585 Chapter 18. 응용프로그램 패키징 ... 588 1. 다양한 패키지 종류의 이해 ... 589 기업형 ... 590 쉐어웨어형 ... 591 개봉용(Shrink-wrap) ... 593 2. 파일 모으기 ... 594 3. InstallShield 사용 ... 596 컴포넌트 셋업 ... 600 파일 그룹 셋업 ... 603 리소스 정의 ... 603 미디어 타입 결정 ... 604 4. Windows Installer 사용 ... 606 Microsoft Windows Installer에 대해 ... 606 응용프로그램을 위한 MSI 파일 만들기 ... 610 설치 과정 테스트 ... 614 언인스톨 과정 테스트 ... 614 Microsoft Windows Installer와의 문제점 ... 614 5. 설치 및 배포 프로젝트 ... 161 CAB 프로젝트 ... 617 병합 모듈 프로젝트 ... 617 설치 프로젝트 ... 618 설치 마법사 ... 618 웹 설치 프로젝트 ... 619 Part Ⅵ. 부록 및 용어사전 Appendix A. ActiveX 컴포넌트 리소스 ... 622 1. 가장 잘 처리하는 방법 ... 623 2. 컴포넌트와 툴 구매시의 함정 ... 625 3. 툴박스용으로 원하는 컴포넌트 ... 626 Appendix B. 온라인 리소스 가이드 ... 634 1. 원하는 것을 찾기 ... 636 검색 수행 ... 636 검색엔진 선택 ... 638 2. 인터넷 상에서 Microsoft의 존재 ... 640 제대로 시작하기 ... 641 뉴스그룹 찾기 ... 642 3. Microsoft Knowledge Base ... 643 Appendix C. 용어사전 ... 646 Appendix D. MS SQL Server 2000 시험판 설치 ... 676 Index ... 684