MFC 2/e PDF GBK mirror - anyway solution MFC 1/e MFC 2/e 2

Size: px
Start display at page:

Download "MFC 2/e PDF GBK mirror - anyway solution MFC 1/e MFC 2/e 2"

Transcription

1 2/e 1998/04 MFC 1/e Windows MFC MFC 2/e 1998/ UNALIS 3/e 2/e 2/e 3/e 3/e MFC 2/e MFC 3/e MFC MFC 2/e VC5+MFC42 VC6+MFC421 MFC 2/e 1

2 MFC 2/e PDF GBK mirror - anyway solution MFC 1/e MFC 2/e jjhou@ccca.nctu.edu.tw 2

3 dissecting MFC 2/e part1.pdf chap1~chap3 3,384,209 dissecting MFC 2/e part2.pdf chap4 2,448,990 dissecting MFC 2/e part3.pdf chap5~chap7 2,158,594 dissecting MFC 2/e part4.pdf chap8~chap16 5,171,266 dissecting MFC 2/e part5.pdf appendix A,B,C,D 1,527, the end 3

4

5 山 高 月 小 水 落 石 出

6 深 入 淺 出 MFC ( 第 ㆓ 版 使 用 Visual C & MFC 4.2) Dissecting MFC (Second Edition Using Visual C & MFC 4.2) 侯 俊 傑 著 松 崗 電 腦 圖 資 料 股 份 有 限 公 司 印 行

7 Pioneer is the one that an arrow on his back

8 MFC Application Framework MFC MFC MFC MFC MFC MFC MFC MFC.. enjoyable Kruglinski Inside Visual C++ Hou Dissecting MFC MFC Programming i

9 . Inside Visual C MFC 50~70 MFC MFC 30~40 virtual function template exception... Lung Feng 1992 Windows MFC ii

10 Asing Chang Dissecting MFC Petzold Pietrek, Jaguar R & D MFC Shieh <lmy64621@mail.seeder.net.tw> MFC MFC.. MFC MFC MFC Visual C iii

11 Visual C Windows Programming Windows 95 MFC MFC Windows Programming MFC Fox Wang MFC Windows Programming Charles Petzold Programming Windows 95 David J.Kruglinski Inside Visual C++ MFC iv

12 . MFC 640KB MFC... MFC CWinApp CDocManager. MFC v

13 Rusty CompBook MFC MFC MFC Windows SDK Programming Windows 95 with MFC MFC. Richard MFC step0~step1 10:00 Shelly vi

14 Jedi Your books is already 100 times better than any translation on the market. I won't think of to get a Chinese computer book unless you wrote it or translated it. shiowli@ms13.hinet.net 1997/11 MFC Windows Windows MFC puppet MFC Charles Petzold David J.Kruglinski eureka "anchor" <hcy89@mozart.ee.ncku.edu.tw> I am a student of NCKU EE Department, I am also a reader of you books. Your Book give me a lot of help on my research. vii

15 MFC 80% David Windows C++ Visual Basic Windows MFC How What Why Windows How What Why!!!! viii

16 Chengwei MFC!! Fox Wang wuwei akira I'm your reader in Shanghai JiaoTong University in mainland. Your <Programming WINDOWS MFC> MFC is a very good book that I wanted to have for years. Thank you very much. So I want to know if there are another your book that I can buy in mainland? I hope to read your new books. ix

17 " " " " "wking" Microsoft Developer Studio MFC Microsoft Foundation Classes C++ 32 Windows MFC macros C++ VC++ C++ C++ C++ VC++ VC++ Microsoft Developer Studio MFC C++ VC++ C++ MFC WINDOWS MFC MFC x

18 EricYang News / BBS programming MFC sir MFC... "lishyhan" <lishyhan@ms14.hinet.net> MFC dengqi@glocom-us.com embedded system software C Assembly embedded system Intel processor embedded system Motorola processor Intel 8086, 8051 Motorola assembly framework project Win95 framework VC++ MFC xi

19 News / BBS CompBook and/or programming MFC MFC ob9@bbs.ee.ntu.edu.tw MFC os2.bbs@titan.cc.ntu.edu.tw!! openwin.bbs@cis.nctu.edu.tw MFC sir MFC... ~~ Rosario.bbs@bbs.ntu.edu.tw MFC ~~~ C++ Visual C++ DOS Windows? hschin.bbs@bbs.cs.nthu.edu.tw MFC xii

20 News / BBS CompBook and/or programming VISUAL C++? wayne.bbs@bbs.ee.ncu Visual C++ Inside visual C++ MFC MFC Sagitta.bbs@firebird.cs.ccu.edu.tw Inside Visual C MFC ( ) MFC MFC MFC Windows MFC dickg.bbs@csie.nctu.edu.tw MFC so... on-line help VC Rusty (Rusty) Programming Windows 95 with MFC Jeff Prosise / Microsoft Press Inside Visual C++ MFC MFC xiii

21 News / BBS CompBook and/or programming Visual C++ kuhoung.bbs@csie.nctu.edu.tw (1) Inside Visual C (2) MFC Professional 5.0 (3) Mr. Any Books "howard" <lm3@ms22.hinet.net> SDK MFC MSDN VC Windows help? MFC "apexsoft" <lishyhan@ms14.hinet.net> Visual C++ MFC SDK CCA.bbs@cis.nctu.edu.tw help C++ MFC Document/View/Frame Dynamic Creation, Message mapping MFC MFC trace code xiv

22 News / BBS CompBook and/or programming DECLARE_DYNCREATE, DECLARE_DYNAMIC, IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE, DECLA RE_MESSAGE_MAP, BEGIN_MESSAGE_MAP, END_MESSAGE_MAP titoni MFC 2/e MFC... MFC... basic -> FORTRAN -> C -> C++... szu.bbs@bbs.es.ncku.edu.tw frame1... SDK Data structure xv

23 bin_zhou I am your reader of WINDOWS MFC MFC. I'm leaving in HUBEI WUHAN. Now, I have already get the book in HUA_ZHONG_LI_GONG_DA_XUE. And I am interested in this book very much. a @mail.npust.edu.tw, MFC MFC Visual C++ IDE MFC Mike Dong <mikedong@online.sh.cn> C/C++ WINDOWS MFC MFC C++ MFC WINDOWS SDK WINDOWS API MFC MFC Windows API classes MFC framework programming classes member functions Windows APIs xvi

24 MFC K advanced compiler trace java compiler mail "BaiLu" <jinyang@public1.wx.js.cn> DELPHI PB WINDOWS MFC MFC C++ "Zhang Yongzhong" <yongzhongz@263.net> WINDOWS MFC xvii

25 xviii

26 MFC 9150 VC++ MFC MFC application framework 1 Windows runtime type information dynamic creation persistence document/view K 2 message based event driven programming model 3 message mapping command routing K 1

27 MFC Internals MFC Internals MFC Internals Dissecting MFC MFC programming MFC programming MFC Internals Dissecting MFC programming MFC MFC application framework % programmer application framework... BBS Internet News 2

28 Visual C & MFC 4.21 Visual C programming MFC Visual C FAX

29 4

30 Visual C MFC 4.2 5

31 MFC FAX

32 version control version control version control version control MFC C++ MFC Windows application framework MFC programming 7

33 MFC Windows SDK application framework MFC MFC Programming Windows 95 with MFC Jeff Prosise Microsoft Press Inside Visual C David J.Kruglinski Microsoft Press MFC MFC Visual C++ MFC MFC MFC MFC C++ MFC MFC MFC application framework MFC 8

34 MFC MFC application framework MFC Windows C++ Visual C++ Visual C++ Visual C++ application framework MFC Visual C++ AppWizard AppWizard Visual C++ Scribble Runtime Type Information RTTI Dynamic Creation Persistence Serialization Message Mapping Command Routing Scribble 9

35 1994/08 Visual C++ MFC 1995/04 MFC Microsoft Systems Journal 1995/07 Paul Dilascia Meandering Through the Maze of MFC Message and Command Routing Addison Wesley 1996/06 MFC Internals Programming Windows 95 with MFC Inside Visual C MFC Runtime Type Information Dynamic Creation Message Mapping Command Routing MFC DOS C++ MFC MFC MFC application framework MFC MFC application framework MFC MFC application framework 10

36 P.S.?! 11

37 12

38 目 錄 目 錄 (* 表 示 本 版 新 增 內 容 ) * 讀 者 來 函 / 1 * 第 ㆓ 版 序 / 5 第 ㆒ 版 序 / 7 目 錄 / 13 第 0 章 你 ㆒ 定 要 知 道 ( 導 讀 ) / 27 這 本 書 適 合 誰 / 27 你 需 要 什 麼 技 術 基 礎 / 29 你 需 要 什 麼 軟 硬 體 環 境 / 29 讓 我 們 使 用 同 ㆒ 種 語 言 / 30 本 書 符 號 習 慣 / 34 磁 片 內 容 與 安 裝 / 34 範 例 程 式 說 明 / 34 與 前 版 本 之 差 異 / 39 如 何 聯 絡 作 者 / 40 第 ㆒ 篇 勿 在 浮 砂 築 高 臺 - 本 書 技 術 前 提 / 001 第 1 章 Win32 程 式 基 本 觀 念 / 003 Win32 程 式 開 發 流 程 / 005 需 要 什 麼 函 式 庫 (.LIB) / 005 需 要 什 麼 表 頭 檔 (.H) /

39 深 入 淺 出 MFC 以 訊 息 為 基 礎, 以 事 件 驅 動 之 / 007 ㆒ 個 具 體 而 微 的 Win32 程 式 / 009 程 式 進 入 點 WinMain / 015 視 窗 類 別 之 註 冊 與 視 窗 之 誕 生 / 016 訊 息 迴 路 / 018 視 窗 的 生 命 樞 - 視 窗 函 式 / 019 訊 息 映 射 (Message Map) 雛 形 / 020 對 話 盒 的 運 作 / 022 模 組 定 義 檔 (.DEF) / 024 資 源 描 述 檔 (.RC) / 024 Windows 程 式 的 生 與 死 / 025 閒 置 時 間 的 處 理 :OnIdle / 027 * Console 程 式 / 028 * Console 程 式 與 DOS 程 式 的 差 別 / 029 * Console 程 式 的 編 譯 聯 結 / 031 * JBACKUP:Win32 Console 程 式 設 計 / 032 * MFCCON:MFC Console 程 式 設 計 / 035 * 什 麼 是 C Runtime Library 的 多 緒 版 本 / 038 行 程 與 執 行 緒 (Process and Thread) / 039 核 心 物 件 / 039 ㆒ 個 行 程 的 誕 生 與 死 亡 / 040 產 生 子 行 程 / 041 ㆒ 個 執 行 緒 的 誕 生 與 死 亡 / 044 * 以 _beginthreadex 取 代 CreateThread / 046 執 行 緒 優 先 權 (Priority) / 048 * 多 緒 程 式 設 計 實 例 /

40 目 錄 第 2 章 C++ 的 重 要 性 質 / 055 類 別 及 其 成 員 - 談 封 裝 (encapsulation) / 056 基 礎 類 別 與 衍 生 類 別 - 談 繼 承 (Inheritance)/ 057 this 指 標 / 061 虛 擬 函 式 與 多 型 (Polymorphism) / 062 類 別 與 物 件 大 解 剖 / 077 Object slicing 與 虛 擬 函 式 / 082 靜 態 成 員 ( 變 數 與 函 式 ) / 085 C++ 程 式 的 生 與 死 : 兼 談 建 構 式 與 解 構 式 / 088 * ㆕ 種 不 同 的 物 件 生 存 方 式 / 090 * 所 謂 "Unwinding" / 092 執 行 時 期 型 別 資 訊 (RTTI) / 092 動 態 生 成 (Dynamic Creation) / 095 異 常 處 理 (Exception Handling) / 096 Template / 100 Template Functions / 101 Template Classes / 104 Templates 的 編 譯 與 聯 結 / 106 第 3 章 MFC 六 大 關 鍵 技 術 之 模 擬 / 109 MFC 類 別 階 層 / 111 Frame1 範 例 程 式 / 111 MFC 程 式 的 初 始 化 過 程 / 115 Frame2 範 例 程 式 / 118 RTTI( 執 行 時 期 型 別 辨 識 ) / 122 CRuntimeClass 與 類 別 型 錄 網 / 123 DECLARE_DYNAMIC / IMPLEMENT_DYNAMIC 巨 集 / 125 Frame3 範 例 程 式 /

41 深 入 淺 出 MFC IsKindOf( 型 別 辨 識 ) / 140 Frame4 範 例 程 式 / 141 Dynamic Creation( 動 態 生 成 ) / 143 DECLARE_DYNCREATE / IMPLEMENT_DYNCREATE 巨 集 / 144 Frame6 範 例 程 式 / 151 Persistence( 永 續 生 存 ) 機 制 / 160 Serialize( 資 料 讀 寫 ) / 161 DECLARE_SERIAL/IMPLEMENT_SERIAL 巨 集 / 167 沒 有 範 例 程 式 / 170 Message Mapping( 訊 息 映 射 ) / 170 Frame7 範 例 程 式 / 181 Command Routing( 命 令 繞 行 ) / 191 Frame8 範 例 程 式 / 203 * 本 章 回 顧 / 216 第 ㆓ 篇 欲 善 工 事 先 利 其 器 - Visual C 開 發 工 具 / 217 第 4 章 Visual C++ - 整 合 性 軟 體 開 發 環 境 / 219 安 裝 與 組 成 / 220 ㆕ 個 重 要 的 工 具 / 234 內 務 府 總 管 :Visual C++ 整 合 開 發 環 境 / 236 關 於 project / 237 關 於 工 具 設 定 / 241 Source Browser / 243 Online Help / 247 除 錯 工 具 / 249 VC++ 除 錯 器 / 251 Exception Handling /

42 目 錄 程 式 碼 產 生 器 - AppWizard / 257 東 圈 西 點 完 成 MFC 程 式 骨 幹 / 258 Scribble Step0 / 270 威 力 強 大 的 資 源 編 輯 器 / 294 Icon 編 輯 器 / 295 Cursor 編 輯 器 / 296 Bitmap 編 輯 器 / 297 ToolBar 編 輯 器 / 297 VERSIONINFO 資 源 編 輯 器 / 299 String Table 編 輯 器 / 300 Menu 編 輯 器 / 301 Accelerator 編 輯 器 / 303 Dialog 編 輯 器 / 304 * Console 程 式 的 專 案 管 理 / 305 第 ㆔ 篇 淺 出 MFC 程 式 設 計 / 309 第 5 章 總 觀 Application Framework / 311 什 麼 是 Application Framework / 311 侯 捷 怎 麼 說 / 312 我 怎 麼 說 / 314 別 怎 麼 說 / 317 為 什 麼 使 用 Application Framework / 321 Microsoft Foundation Class(MFC) / 324 白 頭 宮 女 話 寶 :Visual C++ 與 MFC / 327 縱 覽 MFC / 329 General Purpose classes / 330 Windows API classes /

43 深 入 淺 出 MFC Application framework classes / 334 High level abstractions / 334 Afx 全 域 函 式 / 335 * MFC 巨 集 (macros) / 335 * MFC 資 料 型 態 (data type) / 338 第 6 章 MFC 程 式 設 計 導 論 - MFC 程 式 的 生 死 因 果 / 343 不 ㆓ 法 門 : 熟 記 MFC 類 別 的 階 層 架 構 / 346 需 要 什 麼 函 式 庫 (.LIB) / 347 需 要 什 麼 含 入 檔 (.H) / 349 簡 化 的 MFC 程 式 架 構 - 以 Hello MFC 為 例 / 351 Hello 程 式 原 始 碼 / 352 MFC 程 式 的 來 龍 去 脈 / 357 我 只 借 用 兩 個 類 別 :CWinApp 和 CFrameWnd / 358 CWinApp - 取 代 WinMain 的 位 / 359 CFrameWnd - 取 代 WndProc 的 位 / 362 引 爆 器 - Application object / 364 隱 晦 不 明 的 WinMain / 366 AfxWinInit - AFX 內 部 初 始 化 動 作 / 370 CWinApp::InitApplication / 372 CMyWinApp::InitInstance / 374 CFrameWnd::Create 產 生 主 視 窗 ( 並 註 冊 視 窗 類 別 ) / 376 * 奇 怪 的 視 窗 類 別 名 稱 Afx:b:14ae:6:3e8f / 387 視 窗 顯 示 與 更 新 / 389 CWinApp::Run - 程 式 生 命 的 活 水 源 頭 / 390 把 訊 息 與 處 理 函 式 串 接 在 ㆒ 起 :Message Map 機 制 /394 來 龍 去 脈 總 整 理 / 397 Callback 函 式 /

44 目 錄 * 閒 置 時 間 (idle time) 的 處 理 :OnIdle / 403 Dialog 與 Control / 406 通 用 對 話 盒 (Common Controls) / 407 本 章 回 顧 / 409 第 7 章 簡 單 而 完 整 :MFC 骨 幹 程 式 / 411 不 ㆓ 法 門 : 熟 記 MFC 類 別 的 階 層 架 構 / 411 MFC 程 式 的 UI 新 風 貌 / 412 Document/View 支 撐 你 的 應 用 程 式 / 419 利 用 Visual C++ 工 具 完 成 Scribble step0 / 423 骨 幹 程 式 使 用 哪 些 MFC 類 別? / 423 Document Template 的 意 義 / 430 Scribble 的 Document/View 設 計 / 436 主 視 窗 的 誕 生 / 438 工 具 列 和 狀 態 列 的 誕 生 (Toolbar & Status bar) / 440 滑 鼠 拖 放 (Drag and Drop) / 442 訊 息 映 射 (Message Map) / 445 標 準 選 單 File/Edit/View/Window/Help / 446 對 話 盒 / 449 改 用 CEditView / 450 第 ㆕ 篇 深 入 MFC 程 式 設 計 / 453 第 8 章 Document-View 深 入 探 討 / 455 為 什 麼 需 要 Document-View( 形 而 )/ 455 Document / 457 View / 458 Document Frame(View Frame) /

45 深 入 淺 出 MFC Document Template / 459 CDocTemplate 管 理 CDocument / CView / CFrameWnd / 460 Scribble Step1 的 Document( 資 料 結 構 設 計 ) / 468 MFC Collection Classes 的 選 用 / 469 Template-Based Classes / 471 Template-Based Classes 的 使 用 方 法 / 471 CScribbleDoc 的 修 改 / 473 SCRIBBLEDOC.H / 475 SCRIBBLEDOC.CPP / 477 文 件 :㆒ 連 串 的 線 條 / 481 CScribbleDoc 的 成 員 變 數 / 481 CObList / 481 CScribbleDoc 的 成 員 函 式 / 482 線 條 與 座 標 點 / 484 CStroke 的 成 員 變 數 / 484 CArray<CPoint, CPoint> / 484 CStroke 的 成 員 函 式 / 484 Scribble Step1 的 View: 資 料 重 繪 與 編 輯 / 487 CScribbleView 的 修 改 / 488 SCRIBBLEVIEW.H / 488 SCRIBBLEVIEW.CPP / 489 View 的 重 繪 動 作 - GetDocument 和 OnDraw / 493 CScribbleView 的 成 員 變 數 / 493 CScribbleView 的 成 員 函 式 / 493 View 與 使 用 者 的 交 談 ( 滑 鼠 訊 息 處 理 實 例 ) / 495 ClassWizard 的 輔 佐 / 496 WizardBar 的 輔 佐 / 498 Serialize: 物 件 的 檔 案 讀 寫 /

46 目 錄 Serialization 以 外 的 檔 案 讀 寫 動 作 / 499 檯 面 的 Serialize 動 作 / 501 檯 面 的 Serialize 寫 檔 奧 秘 / 507 檯 面 的 Serialize 讀 檔 奧 秘 / 514 DYNAMIC / DYNCREATE / SERIAL ㆔ 巨 集 / 522 Serializable 的 必 要 條 件 / 527 CObject 類 別 / 529 IsKindOf / 529 IsSerializable / 530 CObject::Serialize / 531 CArchive 類 別 / 531 operator<< 和 operator>> / 532 效 率 考 量 / 536 自 定 SERIAL 巨 集 給 抽 象 類 別 使 用 / 537 在 CObList 加 入 CStroke 以 外 的 類 別 / 537 Document 與 View 交 流 - 為 Scribble Step4 做 準 備 / 543 第 9 章 訊 息 映 射 與 命 令 繞 行 / 547 到 底 要 解 決 什 麼 / 547 訊 息 分 類 / 549 萬 流 歸 宗 Command Target(CCmdTarget) / 550 ㆔ 個 奇 怪 的 巨 集,㆒ 張 巨 大 的 網 / 551 DECLARE_MESSAGE_MAP 巨 集 / 552 訊 息 映 射 網 的 形 成 :BEGIN_/ON_/END_ 巨 集 / 544 米 諾 托 斯 (Minotauros) 與 西 修 斯 (Theseus) / 560 兩 萬 五 千 里 長 征 - 訊 息 的 流 竄 / 566 直 線 溯 (㆒ 般 Windows 訊 息 ) / 567 拐 彎 溯 (WM_COMMAND 命 令 訊 息 ) /

47 深 入 淺 出 MFC 羅 塞 達 碑 石 :AfxSig_xx 的 秘 密 / 580 Scribble Step2:UI 物 件 的 變 化 / 585 改 變 選 單 / 585 改 變 工 具 列 / 588 利 用 ClassWizard 連 接 命 令 項 識 別 碼 與 命 令 處 理 函 式 / 590 維 護 UI 物 件 狀 態 (UPDATE_COMMAND_UI) / 594 本 章 回 顧 / 599 第 10 章 MFC 與 對 話 盒 / 601 對 話 盒 編 輯 器 / 602 利 用 ClassWizard 連 接 對 話 盒 與 其 專 屬 類 別 / 606 PENDLG.H / 610 PENDLG.CPP / 610 對 話 盒 的 訊 息 處 理 函 式 / 613 MFC 各 式 各 樣 的 MAP / 615 對 話 盒 資 料 交 換 與 查 核 (DDX & DDV) / 617 MFC 各 式 各 樣 的 DDx_ 函 式 / 621 如 何 喚 起 對 話 盒 / 622 本 章 回 顧 / 625 第 11 章 View 功 能 之 加 強 與 重 繪 效 率 之 提 昇 / 627 同 時 修 改 多 個 Views:UpdateAllViews 和 OnUpdate / 629 在 View 定 義 ㆒ 個 hint / 631 把 hint 傳 給 OnUpdate / 635 利 用 hint 增 加 重 繪 效 率 / 637 可 捲 動 的 視 窗 :CScrollView / 640 大 視 窗 的 小 窗 口 :Splitter / 650 分 裂 視 窗 的 功 能 /

48 目 錄 分 裂 視 窗 的 程 式 概 念 / 651 分 裂 視 窗 之 實 作 / 653 本 章 回 顧 / 657 第 12 章 印 表 與 預 覽 / 659 概 觀 / 659 列 印 動 作 的 背 景 原 理 / 663 MFC 預 設 的 印 表 機 制 / 669 Scribble 列 印 機 制 的 補 強 / 685 印 表 機 的 頁 和 文 件 的 頁 / 685 配 置 GDI 繪 圖 工 具 / 687 尺 寸 與 方 向 : 關 於 映 像 模 式 ( 座 標 系 統 ) / 688 分 頁 / 693 表 頭 (Header) 與 表 尾 (Footer)/ 695 動 態 計 算 頁 碼 / 696 列 印 預 覽 (Print Preview) / 697 本 章 回 顧 / 698 第 13 章 多 重 文 件 與 多 重 顯 示 / 701 MDI 和 SDI / 701 多 重 顯 像 (Multiple Views) / 703 視 窗 的 動 態 分 裂 / 704 視 窗 的 靜 態 分 裂 / 707 CreateStatic 和 CreateView / 709 視 窗 的 靜 態 ㆔ 叉 分 裂 / 711 Graph 範 例 程 式 / 713 靜 態 分 裂 視 窗 之 觀 念 整 理 / 724 同 源 子 視 窗 /

49 深 入 淺 出 MFC CMDIFrameWnd::OnWindowNew / 726 Text 範 例 程 式 / 727 非 制 式 作 法 的 缺 點 / 734 多 重 文 件 / 736 新 的 Document 類 別 / 736 新 的 Document Template / 739 新 的 UI 系 統 / 740 新 文 件 的 檔 案 讀 寫 動 作 / 742 * 第 14 章 MFC 多 緒 程 式 設 計 (Multi-threaded Programming in MFC) / 745 從 作 業 系 統 層 面 看 執 行 緒 / 745 ㆔ 個 觀 念 : 模 組 行 程 執 行 緒 / 746 執 行 緒 優 先 權 (Priority) / 748 執 行 緒 排 程 (Scheduling) / 751 Thread Context / 751 從 程 式 設 計 層 面 看 執 行 緒 / 752 Worker Threads 和 UI Threads / 754 錯 誤 觀 念 / 754 正 確 態 度 / 755 MFC 多 緒 程 式 設 計 / 755 探 索 CWinThread / 755 產 生 ㆒ 個 Worker Thread / 759 產 生 ㆒ 個 UI Thread / 761 執 行 緒 的 結 束 / 763 執 行 緒 與 同 步 控 制 / 763 MFC 多 緒 程 式 實 例 /

50 目 錄 * 第 15 章 定 製 ㆒ 個 AppWizard / 771 到 底 Wizard 是 什 麼? / 733 Custom AppWizard 的 基 本 操 作 / 774 剖 析 AppWizard Components / 779 Dialog Templates 和 Dialog Classes / 780 Macros / 781 Directives / 783 動 手 修 改 Top Studio AppWizard / 784 利 用 資 源 編 輯 器 修 改 IDD_CUSTOM1 對 話 窗 畫 面 / 785 利 用 ClassWizard 修 改 CCustom1Dlg 類 別 / 785 改 寫 OnDismiss 虛 擬 函 式, 在 其 定 義 macros / 787 修 改 text template / 788 Top Studio AppWizard 執 行 結 果 /789 更 多 的 資 訊 / 790 * 第 16 章 站 眾 的 肩 膀 - 使 用 Components 和 ActiveX Controls / 791 什 麼 是 Component Gallery / 792 使 用 Components / 795 Splash screen / 795 System Info for About Dlg / 797 Tips of the Day / 798 Components 實 際 運 用 :ComTest 程 式 / 799 修 改 ComTest 程 式 內 容 / 818 使 用 ActiveX Controls / 822 ActiveX Control 基 礎 觀 念 :Properties Methods Events / 823 ActiveX Controls 的 五 大 使 用 步 驟 / 825 使 用 "Grid" ActiveX Control:OcxTest 程 式 /

51 深 入 淺 出 MFC 第 五 篇 附 錄 / 843 附 錄 A 無 責 任 書 評 : 從 搖 籃 到 墳 墓 - Windows 的 完 全 學 習 / 845 * 無 責 任 書 評 :MFC ㆕ 大 王 / 856 附 錄 B Scribble Step5 程 式 原 始 碼 列 表 / 873 附 錄 C Visual C MFC 範 例 程 式 總 覽 / 915 * 附 錄 D 以 MFC 重 建 Debug Window(DBWIN) /

52 第 0 章 你 ㆒ 定 要 知 道 ( 導 讀 ) 第 0 章 深 入 淺 出 MFC MFC Microsoft Foundation Classes Windows Visual C++ MFC Application Object Framework Oriented Runtime Dynamic Type Creation Persistence Information Message Mapping Command Routing MFC MFC in32 message based, event driven, multitasking, multithreading, console programming C++ this 27

53 深 入 淺 出 MFC template exception handling MFC Console Visual C++ Visual C++ User's Guide MFC MFC MFC MFC MFC MFC MFC MFC MFC MFC MFC Eureka Eureka Console DOS-like Windows DOS Box Application Framework Scribble Visual C++ MFC 13 Multi-View Multi-Document 14 ~16 MFC Custom AppWizard Component Gallery ActiveX controls components 28

54 第 0 章 你 ㆒ 定 要 知 道 ( 導 讀 ) Windows C/SDK C++/MFC C++/MFC 1. C++ 2. Windows callback Microsoft Foundation Classes MFC 4. Visual C++ C++ C++ C++ MFC MFC C++ C++ inheritance MFC MFC C++ C++ C++ C++ Win16 Win32 DOS Win32 Wizards message loop window procedure Windows -- MFC OWL Open Class Library Visual C++ Borland C++ VisualAge C++ Windows 95 Windows NT Visual C++ 32 Visual C

55 深 入 淺 出 MFC RAM 16MB RAM Pentium M RAM 2GB 17 Visual C++ Windows 95 Visual C class object framework Document View API - Application Programming Interface API C DOS interrupt vector API OLE Interface C++ API MFC Windows C++ API 30

56 第 0 章 你 ㆒ 定 要 知 道 ( 導 讀 ) SDK - Software Development Kit SDK Phar Lap 386 DOS Extender SDK Windows SDK Microsoft Windows raw API SDK Windows API SDK API Borland C++ SDK API Windows SDK Windows raw API MFC - Microsoft Foundation Classes Windows API C++ C++ Class Library Windows MFC Windows Symantec C++ WATCOM C/C++ MFC Borland C++ MFC -- OWL OWL - Object Windows Library Application Framework C++ Borland C++ Application Framework - C++ Application Framework MFC OWL IBM Open Class Library Application Framework C++ Java Delphi API - Application Programming Interface DLL - Dynamic Link Library GUI - Graphics User Interface MDI - Multiple Document Interface 31

57 深 入 淺 出 MFC MFC - Microsoft Foundation Class OLE - Object Linking & Embedded OWL - Object Windows Library SDK - Software Development Kit SDI - Single Document Interface UI - User Interface WinApp : Windows Application control drag & drop Icon linked-list listbox notification preemptive process queue template Edit ListBox Button... template C++ class template Windows dialog template MFC Document Template window class window focus 32

58 第 0 章 你 ㆒ 定 要 知 道 ( 導 讀 ) class object constructor destructor operator override overloading Encapsulation Inheritance Dynamic Binding late binding virtual function Polymorphism member function data member Base Class Derived Class "double click" "click" Class Object Menu 33

59 深 入 淺 出 MFC CreateWindow strtok WM_CREATE ID_FILE_OPEN CDocument::Serialize m_pnewviewclass BEGIN_MESSAGE_MAP public Win32 C Runtime Windows ID MFC MFC MFC C++ File/New New New Project EXE.OBJ.RES Visual C DOS XCOPY Generic Win32 Win32 Jbackup Win32 console 34

60 第 0 章 你 ㆒ 定 要 知 道 ( 導 讀 ) Visual C++ DOS-like Win32 API MFCcon console Visual C++ DOS-like MFC classes MltiThrd Win32 CreateThread Frame1~8 console DOS-like Application Framework Persistence Frame1 MFC application object Frame2 MFC WinMain Frame3 CRuntimeClass DYNAMIC Frame4 IsKindOf RTTI Frame5 Dynamic Creation MFC 2.5 Frame6 Dynamic Creation MFC 4.x Frame7 Message Map Frame8 Command Routing Hello MFC MFC Document/View -- MFC 1.0 MFC callback WM_PAINT "Hello MFC" idle time 35

61 深 入 淺 出 MFC Scribble Step0~Step5 Scribble MFC Generic SDK Visual C++ Class Library User's Guide Scribble Step1~Step7 Visual C \DEVSTUDIO\VC\MFC\SAMPLES\SCRIBBLE Step1~Step5 Step0 Step6 OnLine Help Step7 OLE Server Scribble Step0 MFC AppWizard MFC Scribble Step1 Document/View WM_PAINT What You See Is What You Get MM_TEXT dpi AppWizard ClassWizard Document CView::OnDraw CDocument::Serialize Scribble Step2 Message 36

62 第 0 章 你 ㆒ 定 要 知 道 ( 導 讀 ) Mapping Command Routing Scribble Step3 10 pixel ClassWizard MFC DDX/DDV control DDX Dialog Data exchange DDV Dialog Data Validation Scribble Step4-11 Scribble Document Views --! Step4 Document Views Invalidate Region Step1 Document Step1 View Splitter Scribble Step5 12 Step1 CScribbleView::OnDraw 37

63 深 入 淺 出 MFC Mapping Mode 0.01 Graph 13 Text 13 Document view Graph2 13 Document Document View UI MltiThrd 14 MFC MFC Mltithrd Top 15 AppWizard Top Studio AppWizard MFC AppWizard ComTest 16 Component Gallery components Splash Screen SysInfo Tip Of The Day OcxTest 16 Component Gallery Grid ActiveX control 38

64 第 0 章 你 ㆒ 定 要 知 道 ( 導 讀 ) MFC 1. Visual C Visual C Visual C++ - MFC Visual C MFC Console Win32 Mltithrd Frame5 MFC 2.5 Dynamic Creation 5. Visual C Console 6. Afx:x:y:z:w Hello idle time 7. 14~16 8. < / > MFC 9. OWL MFC DBWIN Scribble step1 CStroke Visual C Visual C VC VC "forward declaration of data structure class" VC++ CStroke SCRIBBLEDOC.H CScribbleDoc CScribbleDoc SCRIBBLEDOC.H #477 39

65 深 入 淺 出 MFC FAX

66 1 深 入 淺 出 MFC 2nd Edition 1

67 2 第 ㆒ 篇 勿 在 浮 砂 築 高 台

68 Win32 MFC Win32 SDK event driven message based MFC application framework Windows MFC application framework Windows Message Based Event Driven wizard puppet MFC Windows C++ polymorphism Windows 3

69 Windows Visual C++ MFC Dialog Editor Image Editor Font Editor.DLG.BMP.BMP.ICO.ICO.CUR.CUR.FON.FON.C.H.RC RC Compiler C Compiler.RES.RES.OBJ.OBJ.DEF CvtRes tool text file binary file.lib.lib C C runtime, runtime, DLL Import, DLL Import, LINKER.EXE.EXE RBJ RBJ 4

70 Win32 Windows UI User Interface RC EXE 1-1 UI UI.ico.bmp.cur.rc RC RC.EXE UI.RES Windows.LIB Windows Windows API.dll DLL Dynamic Link Library.exe.dll.fon.mod.drv.ocx Windows C Runtimes Windows API C Runtimes Visual C small/medium/large : LIBC.LIB - C Runtime MSVCRT.LIB - C Runtime MSVCRT40.DLL import MSVCRT40.DLL Windows API Windows GDI32.DLL USER32.DLL KERNEL32.DLL 5

71 DLL API import 32 Windows import GDI32.LIB USER32.LIB KERNEL32.LIB Windows 95 16/32 32 GDI32.DLL USER32.DLL KERNEL32.DLL KRNL386.EXE DLLs thunking layer APIs Windows API Common Dialog ToolHelp GDI USER KERNEL COMMDLG.DLL TOOLHELP.DLL APIs DLLs import COMDLG32.LIB TH32.LIB Generic makefile.h Windows WINDOWS.H 5000 Visual C WINDOWS.H API WINDOWS.H WINDOWS.H API system DLLs COMMDLG.DLL MAPI.DLL TAPI.DLL COMMDLG.H MAPI.H TAPI.H 6

72 message based event driven Windows while USER system queue Windows Windows application queue GetMessage API GUI UNIX X Window OS/2 Presentation Manager Windows MSG msg; while (GetMessage(&msg, NULL, NULL, NULL)) TranslateMessage(&msg); DispatchMessage(&msg); // Windows API MSG Windows : /* Queued message structure */ typedef struct tagmsg } MSG; HWND hwnd; UINT message; // WM_xxx WM_MOUSEMOVE WM_SIZE... WPARAM wparam; LPARAM lparam; DWORD time; POINT pt; 7

73 window procedure window function Windows API Windows MYAPP.EXE Mouse Driver System message queue Keyboard Driver Messages from other windows PostMessage() Application message queue WinMain(hInst, hprev,...) MSG msg; RegisterClass(...); CreateWindow(...); ShowWindow(...); UpdateWindow(...); while(getmessage(&msg...)) TranslateMessage(...); DispatchMessage(...); } return msg.wparam; } Window Procedure Windows USER Module SendMessage() WndProc(hwnd, msg, wparam, lparam) switch (msg) case WM_CREATE:... case WM_COMMAND:... case WM_LBUTTONDOWN:... case WM_PAINT:... case WM_CLOSE:... case WM_DESTROY:... default: return DefWindowProc(...); } return(0); } 1-2 Windows 8

74 Win32 Windows Hello Windows 1-2 Win32 Win32 makefile makefile -- generic.res : generic.rc generic.h rc generic.rc : generic.res generic.rc generic.h rc generic.rc makefile makefile NMAKE.EXE Microsoft MAKE.EXE Borland MAKE.EXE 9

75 Generic.mak DOS nmake generic.mak p.224 #0001 # filename : generic.mak #0002 # make file for generic.exe (Generic Windows Application) #0003 # usage : nmake generic.mak (Microsoft C/C ) (Visual C++ 2.x) #0004 # usage : nmake generic.mak (Microsoft C/C ) (Visual C++ 4.0) #0005 #0006 all: generic.exe #0007 #0008 generic.res : generic.rc generic.h #0009 rc generic.rc #0010 #0011 generic.obj : generic.c generic.h #0012 cl -c -W3 -Gz -D_X86_ -DWIN32 generic.c #0013 #0014 generic.exe : generic.obj generic.res #0015 link /MACHINE:I386 -subsystem:windows generic.res generic.obj \ #0016 libc.lib kernel32.lib user32.lib gdi32.lib Generic.h #0001 // #0002 // : generic.h #0003 // #0004 BOOL InitApplication(HANDLE); #0005 BOOL InitInstance(HANDLE, int); #0006 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); #0007 LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); Generic.c Windows API #0001 // #0002 // Generic - Win32 #0003 // Top Studio * J.J.Hou #0004 // : generic.c #0005 // : #0006 // : generic.mak #0007 // #0008 #0009 #include <windows.h> // #0010 #include "resource.h" // #0011 #include "generic.h" // #0012 #0013 HINSTANCE _hinst; // Instance handle #0014 HWND _hwnd; 10

76 #0015 #0016 char _szappname[] = "Generic"; // #0017 char _sztitle[] = "Generic Sample Application"; // #0018 #0019 // #0020 // WinMain - #0021 // #0022 int CALLBACK WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, #0023 LPSTR lpcmdline, int ncmdshow) #0024 #0025 MSG msg; #0026 #0027 UNREFERENCED_PARAMETER(lpCmdLine); // #0028 #0029 if (!hprevinstance) #0030 if (!InitApplication(hInstance)) #0031 return (FALSE); #0032 #0033 if (!InitInstance(hInstance, ncmdshow)) #0034 return (FALSE); #0035 #0036 while (GetMessage(&msg, NULL, 0, 0)) #0037 TranslateMessage(&msg); #0038 DispatchMessage(&msg); #0039 } #0040 #0041 return (msg.wparam); // PostQuitMessage #0042 } #0043 // #0044 // InitApplication - #0045 // #0046 BOOL InitApplication(HINSTANCE hinstance) #0047 #0048 WNDCLASS wc; #0049 #0050 wc.style = CS_HREDRAW CS_VREDRAW; #0051 wc.lpfnwndproc = (WNDPROC)WndProc; // #0052 wc.cbclsextra = 0; #0053 wc.cbwndextra = 0; #0054 wc.hinstance = hinstance; #0055 wc.hicon = LoadIcon(hInstance, "jjhouricon"); #0056 wc.hcursor = LoadCursor(NULL, IDC_ARROW); #0057 wc.hbrbackground = GetStockObject(WHITE_BRUSH); // #0058 wc.lpszmenuname = "GenericMenu"; //.RC #0059 wc.lpszclassname = _szappname; #

77 #0061 return (RegisterClass(&wc)); #0062 } #0063 // #0064 // InitInstance - #0065 // #0066 BOOL InitInstance(HINSTANCE hinstance, int ncmdshow) #0067 #0068 _hinst = hinstance; // #0069 #0070 _hwnd = CreateWindow( #0071 _szappname, #0072 _sztitle, #0073 WS_OVERLAPPEDWINDOW, #0074 CW_USEDEFAULT, #0075 CW_USEDEFAULT, #0076 CW_USEDEFAULT, #0077 CW_USEDEFAULT, #0078 NULL, #0079 NULL, #0080 hinstance, #0081 NULL #0082 ); #0083 #0084 if (!_hwnd) #0085 return (FALSE); #0086 #0087 ShowWindow(_hWnd, ncmdshow); // #0088 UpdateWindow(_hWnd); // WM_PAINT #0089 return (TRUE); #0090 } #0091 // #0092 // WndProc - #0093 // #0094 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, #0095 WPARAM wparam, LPARAM lparam) #0096 #0097 int wmid, wmevent; #0098 #0099 switch (message) #0100 case WM_COMMAND: #0101 #0102 wmid = LOWORD(wParam); #0103 wmevent = HIWORD(wParam); #0104 #0105 switch (wmid) #0106 case IDM_ABOUT: 12

78 #0107 DialogBox(_hInst, // #0108 "AboutBox", // #0109 hwnd, // #0110 (DLGPROC)About // #0111 ); #0112 break; #0113 #0114 case IDM_EXIT: #0115 // #0116 DestroyWindow (hwnd); #0117 break; #0118 #0119 default: #0120 return (DefWindowProc(hWnd, message, wparam, lparam)); #0121 } #0122 break; #0123 #0124 case WM_DESTROY: // #0125 PostQuitMessage(0); #0126 break; #0127 #0128 default: #0129 return (DefWindowProc(hWnd, message, wparam, lparam)); #0130 } #0131 return (0); #0132 } #0133 // #0134 // #0135 // #0136 LRESULT CALLBACK About(HWND hdlg, UINT message, #0137 WPARAM wparam, LPARAM lparam) #0138 #0139 UNREFERENCED_PARAMETER(lParam); // #0140 #0141 switch (message) #0142 case WM_INITDIALOG: #0143 return (TRUE); // TRUE #0144 #0145 case WM_COMMAND: #0146 if (LOWORD(wParam) == IDOK #0147 LOWORD(wParam) == IDCANCEL) #0148 EndDialog(hDlg, TRUE); #0149 return (TRUE); // TRUE #0150 } #0151 break; #0152 } 13

79 #0153 return (FALSE); // FALSE #0154 } Generic.rc #0001 // #0002 // : generic.rc #0003 // #0004 #include "windows.h" #0005 #include "resource.h" #0006 #0007 jjhouricon ICON DISCARDABLE "jjhour.ico" #0008 #0009 GenericMenu MENU DISCARDABLE #0010 BEGIN #0011 POPUP "&File" #0012 BEGIN #0013 MENUITEM "&New", IDM_NEW, GRAYED #0014 MENUITEM "&Open...", IDM_OPEN, GRAYED #0015 MENUITEM "&Save", IDM_SAVE, GRAYED #0016 MENUITEM "Save &As...", IDM_SAVEAS, GRAYED #0017 MENUITEM SEPARATOR #0018 MENUITEM "&Print...", IDM_PRINT, GRAYED #0019 MENUITEM "P&rint Setup...", IDM_PRINTSETUP, GRAYED #0020 MENUITEM SEPARATOR #0021 MENUITEM "E&xit", IDM_EXIT #0022 END #0023 POPUP "&Edit" #0024 BEGIN #0025 MENUITEM "&Undo\tCtrl+Z", IDM_UNDO, GRAYED #0026 MENUITEM SEPARATOR #0027 MENUITEM "Cu&t\tCtrl+X", IDM_CUT, GRAYED #0028 MENUITEM "&Copy\tCtrl+C", IDM_COPY, GRAYED #0029 MENUITEM "&Paste\tCtrl+V", IDM_PASTE, GRAYED #0030 MENUITEM "Paste &Link", IDM_LINK, GRAYED #0031 MENUITEM SEPARATOR #0032 MENUITEM "Lin&ks...", IDM_LINKS, GRAYED #0033 END #0034 POPUP "&Help" #0035 BEGIN #0036 MENUITEM "&Contents", IDM_HELPCONTENTS, GRAYED #0037 MENUITEM "&Search for Help On...", IDM_HELPSEARCH, GRAYED #0038 MENUITEM "&How to Use Help", IDM_HELPHELP, GRAYED #0039 MENUITEM SEPARATOR #0040 MENUITEM "&About Generic...", IDM_ABOUT #0041 END 14

80 #0042 END #0043 #0044 AboutBox DIALOG DISCARDABLE 22, 17, 144, 75 #0045 STYLE DS_MODALFRAME WS_CAPTION WS_SYSMENU #0046 CAPTION "About Generic" #0047 BEGIN #0048 CTEXT "Windows 95", -1,0, 5,144,8 #0049 CTEXT "Generic Application",-1,0,14,144,8 #0050 CTEXT "Version 1.0", -1,0,34,144,8 #0051 DEFPUSHBUTTON "OK", IDOK,53,59,32,14,WS_GROUP #0052 END main WinMain C int main(int argc, char *argv[ ], char *envp[ ]);... } WinMain Windows int CALLBACK WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance,... } LPSTR lpcmdline, int ncmdshow) // Win32 CALLBACK stdcall // // _pascal _cdecl Windows shell Windows 3.1 Windows 95 Windows C startup code WinMain 15

81 Windows API CreateWindow API RegisterClass RegisterClass WNDCLASS CreateWindow 11 WNDCLASS wc; GENERIC.C GENERIC.C wc.style = CS_HREDRAW CS_VREDRAW; wc.lpfnwndproc = (WNDPROC)WndProc; wc.cbclsextra = 0; wc.cbwndextra = 0; wc.hinstance = hinstance; wc.hicon = LoadIcon(hInstance, "jjhouricon"); wc.hcursor = LoadCursor(NULL, IDC_ARROW); wc.hbrbackground = GetStockObject(WHITE_BRUSH); wc.lpszmenuname = "GenericMenu"; wc.lpszclassname = "Generic"; RegisterClass(&wc); HWND hwnd; hwnd = CreateWindow( "Generic", "Generic Sample Application", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, // left CW_USEDEFAULT, // top CW_USEDEFAULT, // width CW_USEDEFAULT, // height NULL, NULL, hinstance, NULL );... END LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)... } jjhouricon ICON DISCARDABLE "jjhour.ico" GenericMenu MENU DISCARDABLE BEGIN POPUP "&File"... POPUP "&Edit"... POPUP "&Help" } GENERIC.C GENERIC.C GENERIC.RC GENERIC.RC height width 16

82 1-3 wc.lpfnwndproc CreateWindow ShowWindow WM_PAINT UpdateWindow Generic RegisterClass InitApplication CreateWindow InitInstance int CALLBACK WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow)... } if (!hprevinstance) if (!InitApplication(hInstance)) return (FALSE); if (!InitInstance(hInstance, ncmdshow)) return (FALSE); // BOOL InitApplication(HINSTANCE hinstance) WNDCLASS wc;... } return (RegisterClass(&wc)); // BOOL InitInstance(HINSTANCE hinstance, int ncmdshow) _hwnd = CreateWindow(...);... } InitApplication InitInstance Windows 3.x instance RegisterClass 17

83 InitApplication WinMain hprevinstance instance CreateWindow InitInstance Windows NT Windows 95 Win32 instance Win32 hprevinstance 0 RegisterClass CreateWindow InitApplication InitInstance MFC CWinApp MFC WinMain while (GetMessage(&msg,...)) } TranslateMessage(&msg); // DispatchMessage(&msg); // TranslateMessage DispatchMessage wc.lpfnwndproc ) DispatchMessage 1-2 DispatchMessage USER GetMessage Windows 3.x non-preemptive Windows 95

84 Windows NT preemptive GetMessage CPU DispatchMessage USER switch/case Windows call back Windows Windows LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) switch/case default: DefWindowProc Windows wparam lparam wparam Windows Programming Modal call back GetMessage 19

85 callback Message Map MFC MFC MSGMAP_ENTRY dim struct MSGMAP_ENTRY UINT nmessage; LONG (*pfn)(hwnd, UINT, WPARAM, LPARAM); }; #define dim(x) (sizeof(x) / sizeof(x[0])) MSGMAP_ENTRY pfn nmessage C++ _messageentries[ ] _commandentries[ ] // struct MSGMAP_ENTRY _messageentries[] = WM_CREATE, OnCreate, WM_PAINT, OnPaint, WM_SIZE, OnSize, WM_COMMAND, OnCommand, WM_SETFOCUS, OnSetFocus, WM_CLOSE, OnClose, WM_DESTROY, OnDestroy, } ; 20

86 // Command-ID struct MSGMAP_ENTRY _commandentries = IDM_ABOUT, OnAbout, IDM_FILEOPEN, OnFileOpen, IDM_SAVEAS, OnSaveAs, } ; WM_COMMAND // // // LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int i; for(i=0; i < dim(_messageentries); i++) // if (message == _messageentries[i].nmessage) return((*_messageentries[i].pfn)(hwnd, message, wparam, lparam)); } return(defwindowproc(hwnd, message, wparam, lparam)); } // // OnCommand -- WM_COMMAND // LONG OnCommand(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int i; for(i=0; i < dim(_commandentries); i++) // if (LOWORD(wParam) == _commandentries[i].nmessage) return((*_commandentries[i].pfn)(hwnd, message, wparam, lparam)); } return(defwindowproc(hwnd, message, wparam, lparam)); } // LONG OnCreate(HWND hwnd, UINT wmsg, UINT wparam, LONG lparam)... } 21

87 // LONG OnAbout(HWND hwnd, UINT wmsg, UINT wparam, LONG lparam)... } // WndProc OnCommand _messageentries[ ] _commandentries[ ] MFC Message Map MFC MFC Message Map Windows 1. modal 2. modeless modal Generic About 1. dialog template RC dialog procedure WM_INITDIALOG WM_COMMAND WM_COMMAND notification 22

88 Modal DialogBox EndDialog API 1-4 TRUE FALSE FALSE ( Dialog Templatet),in RC file. 1 AboutBox DIALOG DISCARDABLE 22, 17, 144, 75 STYLE DS_MODALFRAME WS_CAPTION WS_SYSMENU CAPTION "About Generic" BEGIN CTEXT "Windows 95", -1,0, 5,144,8 CTEXT "Generic Application",-1,0,14,144,8 CTEXT "Version 1.0", -1,0,34,144,8 DialogBox DEFPUSHBUTTON "OK", IDOK,53,59,32,14,WS_GROUP DialogBox(_hInst, END "AboutBox", // hwnd, // (DLGPROC)About // ); 2 4 LRESULT CALLBACK About(HWND hdlg, UINT message, WPARAM wparam, LPARAM lparam) UNREFERENCED_PARAMETER(lParam); //, switch (message) case WM_INITDIALOG: return (TRUE); // TRUE case WM_COMMAND: if (LOWORD(wParam) == IDOK 3 LOWORD(wParam) == IDCANCEL) EndDialog(hDlg, TRUE); return (TRUE); // TRUE } break; } return (FALSE); // FALSE } WM_COMMAND IDOK 23

89 .DEF Windows heap stack callback... NAME Generic DESCRIPTION 'Generic Sample' EXETYPE STUB CODE DATA HEAPSIZE 4096 WINDOWS STACKSIZE EXPORTS 'WINSTUB.EXE' PRELOAD DISCARDABLE PRELOAD MOVEABLE MULTIPLE Visual C++.DEF STUB stub Windows DOS This Program Requires Microsoft Windows This Program Can Not Run in DOS mode Win16 stub Win32 Win32 Stub.RC RC ICON CURSOR BITMAP FONT DIALOG MENU ACCELERATOR STRING VERSIONINFO Visual C TOOLBAR RC Generic ICON MENU DIALOG 24

90 Windows Windows Windows Windows Message queue WM_CLOSE 2 8 WM_QUIT WM_DESTROY WinMain(hInst, hprev,...) MSG msg; RegisterClass(...); CreateWindow(...); ShowWindow(...); UpdateWindow(...); while(getmessage(&msg...)) TranslateMessage(...); DispatchMessage(...); } return msg.wparam; WndProc(hwnd, msg, wparam, lparam) switch (msg) case WM_CREATE:... case WM_COMMAND:... case WM_LBUTTONDOWN:... case WM_PAINT:... case WM_MOUSEMOVE:... case WM_DESTROY:... PostQuitMessage(0); 7 break; default: return DefWindowProc(...); } return(0); case } case WM_CLOSE: 6 WM_CLOSE: DestroyWindow(...); DestroyWindow(...); (in DefWindowProc) 3 WM_CREATE 1 USER Module 25

91 1. CreateWindow CreateWindow WM_CREATE GetMessage WM_QUIT GetMessage 0 while 3. DispatchMessage Windows USER Close WM_CLOSE DefWindowProc 6. DefWindowProc WM_CLOSE DestroyWindow DestroyWindow WM_DESTROY 7. WM_DESTROY PostQuitMessage 8. PostQuitMessage WM_QUIT GetMessage WM_DESTROY ÓÃPostQuitMessage Close DefWindowProc DestroyWindow 26

92 OnIdle idle time timer WM_TIMER WM_MOUSEMOVE WM_MOUSEMOVE SDK WinMain while (TRUE) } if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) } else } if (msg.message == WM_QUIT) break; TranslateMessage(&msg); DispatchMessage(&msg); OnIdle(); PeekMessage GetMessage primary thread UI API GetMessage PeekMessage OnIdle HelloMFC MFC idle time p

93 Console Windows WinMain Dialog Box Message Box Windows API DialogBox MessageBox C/C++ main printf Where did the good times go Win32 Windows GUI Visual C++ "DOS-like" GUI Win32 API console console MFC GUI collection classes CArray CList CMap CFile CStdioFile BBS C/C++ Visual C++ Visual Visual C++ programming MFC programming C++ MFC programming Visual C++ C/C++ console C++ console console MFC console "DOS-like" console edit MFC CEditView console 28

94 Windows console console JBACKUP Win32 console Win32 API MFCCON MFC console MFC CStudioFile CString Console Console DOS DOS console Windows DOS Box Windows C++ IDE Console Windows Win32 main C runtime GUI Win32 API console console cin cout DOS DOS main C runtime Win32 API DOS Windows DOS Box Win95 WinNT 29

95 Console console Win32 API KERNEL32.DLL Windows processes threads -- GUI API DOS console printf cout scanf cin DOS MZ MZ Mark Zbikowski DOS Console Win32 PE Portable Executable Win32 Visual C++ DUMPBIN PE JBACKUP MFCCON H:\u004\prog\jbackup.01>dumpbin /summary jbackup.exe Microsoft (R) COFF Binary File Dumper Version Copyright (C) Microsoft Corp All rights reserved. Dump of file jbackup.exe File Type: EXECUTABLE IMAGE Summary 5000.data 1000.idata 1000.rdata 5000.text DOS 30

96 C:\UTILITY>dumpbin /summary dsize.exe Microsoft (R) COFF Binary File Dumper Version Copyright (C) Microsoft Corp All rights reserved. Dump of file dsize.exe DUMPBIN : warning LNK4094: "dsize.exe" is an MS-DOS executable; use EXEHDR to dump it Summary Console makefile console, 如 : /D_CONSOLE subsystem #0001 # filename : pedump.mak #0002 # make file for pedump.exe #0003 # usage : nmake pedump.msc (Visual C++ 5.0) #0004 #0005 all : pedump.exe #0006 #0007 pedump.exe: pedump.obj exedump.obj objdump.obj common.obj #0008 link /subsystem:console /incremental:yes \ #0009 /machine:i386 /out:pedump.exe \ #0010 pedump.obj common.obj exedump.obj objdump.obj \ #0011 kernel32.lib user32.lib #0012 #0013 pedump.obj : pedump.c #0014 cl /W3 /GX /Zi /YX /Od /DWIN32 /D_CONSOLE /FR /c pedump.c #0015 #0016 common.obj : common.c #0017 cl /W3 /GX /Zi /YX /Od /DWIN32 /D_CONSOLE /FR /c common.c #0018 #0019 exedump.obj : exedump.c #0020 cl /W3 /GX /Zi /YX /Od /DWIN32 /D_CONSOLE /FR /c exedump.c #0021 #0022 objdump.obj : objdump.c #0023 cl /W3 /GX /Zi /YX /Od /DWIN32 /D_CONSOLE /FR /c objdump.c cl jbackup.c <ENTER> jbackup.exe 31

97 Frame_ cl my.cpp mfc.cpp <ENTER> my.exe Generic.exe CL.EXE JBACKUP Win32 Console console 1. main 2. printf scanf cin cout 3. GUI Win32 API JBACKUP C:\SomeoneDir>JBACKUP SrcDir [DstDir] JBACKUP g: k: SrcDir DstDir DstDir DstDir k: -- MO -- k: SrcDir JBACKUP g: g: g:\u002\doc g:\u002\doc k:\u002\doc k:\u002\doc JBACK SrcDir DstDir SrcDir DstDir DstDir ScrDir DstDir 32

98 xcopy MO JBACKUP SrcDir recursive JBACKUP Win32 APIs GetCurrentDirectory FindFirstFile FindNextFile CompareFileTime CopyFile DeleteFile SrcDir DstDir JBACKUP SrcDir srcfiles[ ] SRCFILE typedef struct _SRCFILE WIN32_FIND_DATA fd; BOOL bisnew; } SRCFILE; SRCFILE srcfiles[filemax]; WIN32_FIND_DATA fd; // prepare srcfiles[]... bret = TRUE; isrcfiles = 0; hfile = FindFirstFile(SrcDir, &fd); while (hfile!= INVALID_HANDLE_VALUE && bret) if (fd.dwfileattributes == FILE_ATTRIBUTE_ARCHIVE) } srcfiles[isrcfiles].fd = fd; srcfiles[isrcfiles].bisnew = FALSE; isrcfiles++; 33

99 } bret = FindNextFile(hFile, &fd); DstDir destfiles[ ] DESTFILE typedef struct _DESTFILE WIN32_FIND_DATA fd; BOOL bmatch; } DESTFILE; DESTFILE destfiles[filemax]; WIN32_FIND_DATA fd; } bret = TRUE; idestfiles = 0; hfile = FindFirstFile(DstDir, &fd); while (hfile!= INVALID_HANDLE_VALUE && bret) if (fd.dwfileattributes == FILE_ATTRIBUTE_ARCHIVE) } destfiles[idestfiles].fd = fd; destfiles[idestfiles].bmatch = FALSE; idestfiles++; bret = FindNextFile(hFile, &fd); srcfiles[ ] destfiles[ ] scrfiles[ ] desfiles[ ] bisnew TRUE desfiles[ ] srcfiles[ ] bmatch FALSE srcfiles[ ] bisnew TRUE DstDir destfiles[ ] bmatch FALSE JBACKUP Jbackup.01 34

100 MFCCON MFC Console Win32 MFC console MFC 40 Win32 console MFC CStdioFile CString CObject CFile CString CStdioFile CMemFile CSocketFile COleStreamFile MFC CFile I/O CStdioFile CFile CStdioFile C runtime fopen stream Stream CString 100 Fabonacci sequence

101 #0001 // File : MFCCON.CPP #0002 // Author : J.J.Hou / Top Studio #0003 // Date : #0004 // Goal : Fibonacci sequencee, less than 100 #0005 // Build : cl /MT mfccon.cpp (/MT means Multithreading) #0006 #0007 #include <afx.h> #0008 #include <stdio.h> #0009 #0010 int main() #0011 #0012 int lo, hi; #0013 CString str; #0014 CStdioFile ffibo; #0015 #0016 ffibo.open("fibo.dat", CFile::modeWrite #0017 CFile::modeCreate CFile::typeText); #0018 #0019 str.format("%s\n", "Fibonacci sequencee, less than 100 :"); #0020 printf("%s", (LPCTSTR) str); #0021 ffibo.writestring(str); #0022 #0023 lo = hi = 1; #0024 #0025 str.format("%d\n", lo); #0026 printf("%s", (LPCTSTR) str); #0027 ffibo.writestring(str); #0028 #0029 while (hi < 100) #0030 #0031 str.format("%d\n", hi); #0032 printf("%s", (LPCTSTR) str); #0033 ffibo.writestring(str); #0034 hi = lo + hi; #0035 lo = hi - lo; #0036 } #0037 #0038 ffibo.close(); #0039 return 0; #0040 } 36

102 Fibonacci sequencee, less than 100 : main MFC Console 2. AFX.H 3. GUI MFC CStdioFile CString 4. /MT C runtime MFC console C runtime /MT Microsoft (R) 32-Bit Incremental Linker Version Copyright (C) Microsoft Corp All rights reserved. /out:mfccon.exe mfccon.obj nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol endthreadex nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol beginthreadex mfccon.exe : fatal error LNK1120: 2 unresolved externals beginthreadex endthreadex MFC MFCCON mfccon.01 37

103 C Runtime C runtime 1970s PC C runtime multithreaded synchronous mechanism critical section mutex semaphore event runtime -- Visual C++ C runtime errno Visual C++ C runtime Single-Threaded static libc.lib 898,826 Multithreaded static libcmt.lib 951,142 Multithreaded DLL msvcrt.lib 5,510,000 Debug Single-Threaded static libcd.lib 2,374,542 Debug Multithreaded static libcmtd.lib 2,949,190 Debug Multithreaded DLL msvcrtd.lib 803,418 Visual C++ C runtime /ML Single-Threaded static /MT Multithreaded static /MD Multithreaded DLL dynamic import library /MLd Debug Single-Threaded static /MTd Debug Multithreaded static /MDd Debug Multithreaded DLL dynamic import library 38

104 Process and Thread OS/2 Windows NT Windows 95 PC process CPU kernel object GDI GDI Pen Brush GDI? GDI usage count event mutex semaphore file file-mapping process thread CreateEvent CreateMutex CreateSemaphore CreateFile CreateFileMapping CreateProcess CreateThread file-mapping memory mapping file process thread 39

105 API handle 1 CloseHandle process process process shell Win95 Windows 3.x App.exe shell CreateProcess 1. shell CreateProcess App.exe GB 4. App.exe DLLs PE.idata section 5. primary thread CPU 6. C runtime Startup code 7. Startup code App WinMain 8. App 9. App WinMain WinMain 10. Startup code 11. ExitProcess 40

106 Windows shell shell CreateProcess CreateProcess API CreateProcess( ); LPCSTR lpapplicationname, LPSTR lpcommandline, LPSECURITY_ATTRIBUTES lpprocessattributes, LPSECURITY_ATTRIBUTES lpthreadattributes, BOOL binherithandles, DWORD dwcreationflags, LPVOID lpenvironment, LPCSTR lpcurrentdirectory, LPSTARTUPINFO lpstartupinfo, LPPROCESS_INFORMATION lpprocessinformation lpapplicationname lpcommandline command line lpapplicationname.exe lpapplicationname NULL lpcommandline token ".EXE" Windows Windows 4. Windows System 41

107 5. path CreateProcess("E:\\CWIN95\\NOTEPAD.EXE", "README.TXT",...); E:\CWIN95\NOTEPAD.EXE "README.TXT" CreateProcess(NULL, "NOTEPAD README.TXT",...); NOTEPAD.EXE "README.TXT" CreateProcess TRUE FALSE dwcreationflags CREATE_SUSPENDED lpenvironment NULL lpcurrentdirectory NULL lpstartupinfo STARTUPINFO API PROCESS_INFORMATION 42

108 typedef struct _PROCESS_INFORMATION HANDLE hprocess; HANDLE hthread; DWORD dwprocessid; DWORD dwthreadid; } PROCESS_INFORMATION; handle handles VOID ExitProcess(UINT fuexitcode); BOOL TerminateProcess(HANDLE hprocess, UINT fuexitcode); handle TerminateProcess DLLs TerminateProcess CloseHandle PROCESS_INFORMATION ProcInfo; BOOL fsuccess; fsuccess = CreateProcess(...,&ProcInfo); if (fsuccess) CloseHandle(ProcInfo.hThread); CloseHandle(ProcInfo.hProcess); } 43

109 Windows CreateThread 1. handle CreateThread context context SS IP CPU context switch context CreateThread CreateThread(LPSECURITY_ATTRIBUTES lpthreadattributes, DWORD dwstacksize, LPTHREAD_START_ROUTINE lpstartaddress, LPVOID lpparameter, DWORD dwcreationflags, LPDWORD lpthreadid ); API Windows 95 0 CREATE_SUSPENDED ResumeThread DWORD ID 44

110 VOID ReadTime(VOID); HANDLE hthread; DWORD ThreadID; hthread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ReadTime, NULL, 0, &ThreadID);... // // thread // GetSystemTime, // hwnddlg 的 IDE_TIMER _h // VOID ReadTime(VOID) char str[50]; SYSTEMTIME st; } while(1) GetSystemTime(&st); sprintf(str,"%u:%u:%u", st.whour, st.wminute, st.wsecond); SetDlgItemText (_hwnddlg, IDE_TIMER, str); Sleep (1000); // } CreateThread Win32 ExitThread TerminateThread TerminateThread API 45

111 _beginthreadex CreateThread Windows Win32 API C runtime C runtime C runtime CreateThread _beginthreadex ANSI C runtime _beginthreadex CreateThread Win32 _beginthreadex Windows windows.h CloseHandle CloseHandle Win32 API windows.h Windows _beginthreadex CreateThread unsigned long _beginthreadex( void *security, unsigned stack_size, unsigned ( stdcall *start_address)(void *), void *arglist, unsigned initflag, unsigned* thrdaddr ); _beginthreadex unsigned long Win32 HANDLE CreateThread _beginthreadex errno doserrno #0001 #include <windows.h> #0002 #include <process.h> 46

112 #0003 unsigned stdcall myfunc(void* p); #0004 #0005 void main() #0006 #0007 unsigned long thd; #0008 unsigned tid; #0009 #0010 thd = _beginthreadex(null, #0011 0, #0012 myfunc, #0013 0, #0014 0, #0015 &tid ); #0016 if (thd!= NULL) #0017 #0018 CloseHandle(thd); #0019 } #0020 } #0021 #0022 unsigned stdcall myfunc(void* p) #0023 #0024 // do your job... #0025 } Win32 API ExitThread C runtime _endthreadex _beginthreadex ID _beginthreadex _endthreadex Jim Beveridge & Robert Wiener Addison Wesley Multithreading Applications in Win32 Win32 / / 47

113 Priority CPU 0 31 Priority Class 1-7 CreateProcess dwcreationflags NORMAL_PRIORITY_CLASS -- IDLE_PRIORITY_CLASS idle IDLE_PRIORITY_CLASS 4 normal NORMAL_PRIORITY_CLASS 9( 前 景 ) 或 7( 背 景 ) high HIGH_PRIORITY_CLASS 13 realtime REALTIME_PRIORITY_CLASS 24 "idle" CPU "normal" "normal" 9 7 "high" Ctrl+Esc task manager "realtime" 48

114 Ctrl+Alt+Del "realtime" IDLE_ NORMAL_ HIGH_ REALTIME_ SetThreadPriority SetThreadPriority SetThreadPriority THREAD_PRIORITY_LOWEST -2 THREAD_PRIORITY_BELOW_NORMAL -1 THREAD_PRIORITY_NORMAL THREAD_PRIORITY_ABOVE_NORMAL +1 THREAD_PRIORITY_HIGHEST +2 SetThreadPriority : : THREAD_PRIORITY_IDLE 1 16 THREAD_PRIORITY_TIME_CRITICAL

115 idle lowest below normal normal above normal highest time critical idle normal ( ) normal ( ) high realtime Win32 MltiThrd MltiThrd HANDLE _hthread[5]; // global variable... LONG APIENTRY MainWndProc (HWND hwnd, UINT message, UINT wparam, LONG lparam) DWORD ThreadID[5]; static DWORD ThreadArg[5] = HIGHEST_THREAD, // 0x00 ABOVE_AVE_THREAD, // 0x3F NORMAL_THREAD, // 0x7F BELOW_AVE_THREAD, // 0xBF LOWEST_THREAD // 0xFF }; //... for(i=0; i<5; i++) // threads _hthread[i] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadProc, &ThreadArg[i], CREATE_SUSPENDED, &ThreadID[i]); // 設 定 thread priorities SetThreadPriority(_hThread[0], THREAD_PRIORITY_HIGHEST); SetThreadPriority(_hThread[1], THREAD_PRIORITY_ABOVE_NORMAL); 50

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

INTRODUCTION TO COM.DOC

INTRODUCTION TO COM.DOC How About COM & ActiveX Control With Visual C++ 6.0 Author: Curtis CHOU mahler@ms16.hinet.net This document can be freely release and distribute without modify. ACTIVEX CONTROLS... 3 ACTIVEX... 3 MFC ACTIVEX

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

VB程序设计教程

VB程序设计教程 高 等 学 校 教 材 Visual Basic 程 序 设 计 教 程 魏 东 平 郑 立 垠 梁 玉 环 石 油 大 学 出 版 社 内 容 提 要 本 书 是 按 高 等 学 校 计 算 机 程 序 设 计 课 程 教 学 大 纲 编 写 的 大 学 教 材, 主 要 包 括 VB 基 础 知 识 常 用 程 序 结 构 和 算 法 Windows 用 户 界 面 设 计 基 础 文 件 处

More information

PowerPoint Presentation

PowerPoint Presentation 列 Kernel Objects Windows Kernel Object 來 理 行 行 What is a Kernel Object? The data structure maintains information about the object Process Object: 錄了 PID, priority, exit code File Object: 錄了 byte offset,

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

MFC 2/e PDF GBK mirror - anyway solution MFC 1/e MFC 2/e

MFC 2/e PDF     GBK mirror - anyway solution MFC 1/e MFC 2/e 2/e 1998/04 MFC 1/e Windows MFC MFC 2/e 1998/05 1998 UNALIS 3/e 2/e 2/e 3/e 3/e MFC 2/e MFC 3/e MFC MFC 2/e VC5+MFC42 VC6+MFC421 MFC 2/e 1 MFC 2/e PDF http://www.jjhou.com http://expert.csdn.net/jjhou

More information

提问袁小兵:

提问袁小兵: C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.

More information

ebook

ebook 3 3 3.1 3.1.1 ( ) 90 3 1966 B e r n s t e i n P ( i ) R ( i ) W ( i P ( i P ( j ) 1) R( i) W( j)=φ 2) W( i) R( j)=φ 3) W( i) W( j)=φ 3.1.2 ( p r o c e s s ) 91 Wi n d o w s Process Control Bl o c k P C

More information

bingdian001.com

bingdian001.com 1. DLL(Dynamic Linkable Library) DLL ± lib EXE DLL DLL EXE EXE ± EXE DLL 1 DLL DLL DLL Windows DLL Windows API Visual Basic Visual C++ Delphi 2 Windows system32 kernel32.dll user32.dll gdi32.dll windows

More information

ebook50-15

ebook50-15 15 82 C / C + + Developer Studio M F C C C + + 83 C / C + + M F C D L L D L L 84 M F C MFC DLL M F C 85 MFC DLL 15.1 82 C/C++ C C + + D L L M F C M F C 84 Developer Studio S t u d i o 292 C _ c p l u s

More information

02

02 Thinking in C++: Volume One: Introduction to Standard C++, Second Edition & Volume Two: Practical Programming C++ C C++ C++ 3 3 C C class C++ C++ C++ C++ string vector 2.1 interpreter compiler 2.1.1 BASIC

More information

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2 PowerBuilder 9 PowerBuilder Native Interface(PBNI) PowerBuilder 9 PowerBuilder C++ Java PowerBuilder 9 PBNI PowerBuilder Java C++ PowerBuilder NVO / PowerBuilder C/C++ PowerBuilder 9.0 PowerBuilder Native

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

基于UML建模的管理管理信息系统项目案例导航——VB篇

基于UML建模的管理管理信息系统项目案例导航——VB篇 PowerBuilder 8.0 PowerBuilder 8.0 12 PowerBuilder 8.0 PowerScript PowerBuilder CIP PowerBuilder 8.0 /. 2004 21 ISBN 7-03-014600-X.P.. -,PowerBuilder 8.0 - -.TP311.56 CIP 2004 117494 / / 16 100717 http://www.sciencep.com

More information

Microsoft Word - 97.01.30軟體設計第二部份範例試題_C++_ _1_.doc

Microsoft Word - 97.01.30軟體設計第二部份範例試題_C++_ _1_.doc 電 腦 軟 體 設 計 乙 級 技 術 士 技 能 檢 定 術 科 測 試 範 例 試 題 (C++) 試 題 編 號 :11900-920201-4 審 定 日 期 : 94 年 7 月 1 日 修 訂 日 期 : 96 年 2 月 1 日 97 年 1 月 30 日 ( 第 二 部 份 ) 電 腦 軟 體 設 計 乙 級 技 術 士 技 能 檢 定 術 科 測 試 應 檢 參 考 資 料 壹 試

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

Learning Java

Learning Java Java Introduction to Java Programming (Third Edition) Prentice-Hall,Inc. Y.Daniel Liang 2001 Java 2002.2 Java2 2001.10 Java2 Philip Heller & Simon Roberts 1999.4 Java2 2001.3 Java2 21 2002.4 Java UML 2002.10

More information

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer)

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer) 1/14 IBM Rational Test RealTime IBM, 2004 7 01 50% IBM Rational Test RealTime IBM Rational Test RealTime 1. 50% IBM Rational Test RealTime IBM Rational Test RealTime 2. IBM Rational Test RealTime Test

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

W. Richard Stevens UNIX Sockets API echo Sockets TCP OOB IO C struct C/C++ UNIX fork() select(2)/poll(2)/epoll(4) IO IO CPU 100% libevent UNIX CPU IO

W. Richard Stevens UNIX Sockets API echo Sockets TCP OOB IO C struct C/C++ UNIX fork() select(2)/poll(2)/epoll(4) IO IO CPU 100% libevent UNIX CPU IO Linux muduo C++ (giantchen@gmail.com) 2012-09-30 C++ TCP C++ x86-64 Linux TCP one loop per thread Linux native muduo C++ IT 5 C++ muduo 2 C++ C++ Primer 4 W. Richard Stevens UNIX Sockets API echo Sockets

More information

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco Windows RTEMS 1 Danilliu MMI TCP/IP 80486 QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos ecos Email www.rtems.com RTEMS ecos RTEMS RTEMS Windows

More information

EK-STM32F

EK-STM32F STMEVKIT-STM32F10xx8 软 件 开 发 入 门 指 南 目 录 1 EWARM 安 装... 1 1.1 第 一 步 : 在 线 注 册... 1 1.2 第 二 步 : 下 载 软 件... 2 1.3 第 三 步 : 安 装 EWARM... 3 2 基 于 STMEVKIT-STM32F10xx8 的 示 例 代 码 运 行... 6 2.1 GPIO Demo... 6 2.2

More information

全唐诗50

全唐诗50 ... 1... 1... 2... 2... 3... 3... 3... 4... 4... 5... 5... 6... 6... 6... 7... 7... 7... 8... 8... 8... 9 I II... 9...10...10...10...11...11...11...12...12...12...13...14...14...15...15...16...16...16...17,...17...18...18...19...19...19

More information

Microsoft Word - Final Chi-Report _PlanD-KlnEast_V7_ES_.doc

Microsoft Word - Final Chi-Report _PlanD-KlnEast_V7_ES_.doc 九 龍 東 商 業 的 統 計 調 查 - 行 政 摘 要 - 2011 年 5 月 統 計 圖 行 政 摘 要...1 圖 I: 在 不 同 地 區 及 樓 宇 類 別 的 數 目 及 比 例...9 圖 II: 影 響 選 擇 地 點 的 因 素 的 重 要 程 度 對 比 就 現 時 所 在 地 點 各 項 因 素 的 滿 意 程 度...20 圖 III: 影 響 選 擇 樓 宇 的 因 素

More information

30,000,000 75,000,000 75,000, (i) (ii) (iii) (iv)

30,000,000 75,000,000 75,000, (i) (ii) (iii) (iv) 30,000,000 75,000,000 75,000,000 24 (i) (ii) (iii) (iv) # * 1,800,000 1,800,000 15% 3,400,000 3,400,000 15% 4,200,000 4,200,000 10% 8,600,000 8,600,000 10% 12,600,000 12,600,000 88% 10% 16,000,000 16,000,000

More information

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南 Symantec Sygate Enterprise Protection 防 护 代 理 安 装 使 用 指 南 5.1 版 版 权 信 息 Copyright 2005 Symantec Corporation. 2005 年 Symantec Corporation 版 权 所 有 All rights reserved. 保 留 所 有 权 利 Symantec Symantec 徽 标 Sygate

More information

슬라이드 1

슬라이드 1 2018-2019 年度第二学期 00106501 计算机图形学 童伟华管理科研楼 1205 室 E-mail: tongwh@ustc.edu.cn 中国科学技术大学数学科学学院 http://math.ustc.edu.cn/ 附讲五 Windows 编程 (API) 2 Windows 操作系统简史 1981 年,Chase Bishop 提出 Interface Manager 模型 1985

More information

ebook50-14

ebook50-14 14 M F C 74 75 76 77 M F C 78 M F C 79 M F C 80 D e l e t e Delete ( ) 81 M F C 14.1 74 14-1 Cut Paste C E d i t 14-1 1. C l a s s Wi z a r d C E d i t C l a s s Wi z a r d W M _ R B U T TO N D O W N 2.

More information

目次 

目次  軟 體 工 程 期 末 報 告 網 路 麻 將 91703014 資 科 三 黃 偉 嘉 91703024 資 科 三 丘 祐 瑋 91703030 資 科 三 江 致 廣 1 目 次 壹 前 言 (Preface) P.4 貳 計 畫 簡 述 及 預 期 效 益 (Project Description and Expected Results) P.4 參 系 統 開 發 需 求 (System

More information

ebook129-11

ebook129-11 11 TThread Wi n 32 16 Wi n d o w s Wi n 3 32 D e l p h i 11.1 3 Win32 API Wi n 32 C P U C P U 16 Windows 32 Delphi Delphi 1 11.1.1 16 Wi n 32 Windows 3.1 1 2 C P U 1 Windows 3.1 Wi n d o w s 16 Wi n d

More information

Sun Fire V440 Server Administration Guide - zh_TW

Sun Fire V440 Server Administration Guide - zh_TW Sun Fire V440 Server 管 理 指 南 Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. 650-960-1300 文 件 號 碼 :817-2818-10 2003 年 7 月, 修 訂 版 A 將 您 對 此 文 件 的 意 見 傳 送 到 :http://www.sun.com/hwdocs/feedback

More information

D C 93 2

D C 93 2 D9223468 3C 93 2 Java Java -- Java UML Java API UML MVC Eclipse API JavadocUML Omendo PSPPersonal Software Programming [6] 56 8 2587 56% Java 1 epaper(2005 ) Java C C (function) C (reusability) eat(chess1,

More information

智力测试故事

智力测试故事 II 980.00 ... 1... 1... 1... 2... 2... 2... 3... 3... 3... 3... 4... 4... 5... 5... 6... 6... 7... 7... 8... 8... 8... 9... 9...10...10...10 I II...11...11...11...12...13...13...13...14...14...14...15...15...15...16...16...17...17...18...18...19...19...19...19...20...20...21...21...21

More information

Microsoft Word - Entry-Level Occupational Competencies for TCM in Canada200910_ch _2_.doc

Microsoft Word - Entry-Level Occupational Competencies for TCM in Canada200910_ch _2_.doc 草 稿 致 省 級 管 理 單 位 之 推 薦 書 二 零 零 九 年 十 月 十 七 日 加 拿 大 中 醫 管 理 局 聯 盟 All rights reserved 序 言 加 拿 大 中 醫 管 理 局 聯 盟, 於 二 零 零 八 年 一 月 至 二 零 零 九 年 十 月 間, 擬 定 傳 統 中 醫 執 業 之 基 礎 文 件 由 臨 床 經 驗 豐 富 之 中 醫 師 教 育 者 及

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

概述

概述 OPC Version 1.8 build 0925 KOCRDK Knight OPC Client Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOC_Init...5 2.2.2 KOC_Uninit...5 2.3...5

More information

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與 程 式 編 写 語 言 在 完 成 這 章 後, 你 將 能 夠 了 解 程 式 編 写 語 言 的 功 能 了 解 高 階 語 言 和 低 階 語 言 之 間 的 分 別 知 道 翻 譯 程 式 的 意 義 和 能 夠 把 翻 譯 程 式 分 類 為 : 匯 編 程 式 編 譯 程 式 和 解 譯 程 式 認 識 不 同 翻 譯 程 式 的 優 點 和 缺 點 程 式 是 指 揮 電 腦 的 指

More information

How to Debug Tuxedo Server printf( Input data is: %s, inputstr); fprintf(stdout, Input data is %s, inputstr); fprintf(stderr, Input data is %s, inputstr); printf( Return data is: %s, outputstr); tpreturn(tpsuccess,

More information

Microsoft Word - John_Ch_1202

Microsoft Word - John_Ch_1202 新 约 圣 经 伴 读 约 翰 福 音 目 录 说 明..I 序 言 : 圣 经 中 神 圣 启 示 的 三 层.II 按 时 分 粮 的 原 则..VIII 纲 目 XI 第 一 章..1 第 二 章 13 第 三 章 25 第 四 章 37 第 五 章 49 第 六 章 61 第 七 章 73 第 八 章 85 第 九 章 97 第 十 章..109 第 十 一 章..121 第 十 二 章..133

More information

2 2 3 DLight CPU I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AM

2 2 3 DLight CPU I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AM Oracle Solaris Studio 12.2 DLight 2010 9 2 2 3 DLight 3 3 6 13 CPU 16 18 21 I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AMP Apache MySQL

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM CHAPTER 6 SQL SQL SQL 6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM 3. 1986 10 ANSI SQL ANSI X3. 135-1986

More information

RUN_PC連載_12_.doc

RUN_PC連載_12_.doc PowerBuilder 8 (12) PowerBuilder 8.0 PowerBuilder PowerBuilder 8 PowerBuilder 8 / IDE PowerBuilder PowerBuilder 8.0 PowerBuilder PowerBuilder PowerBuilder PowerBuilder 8.0 PowerBuilder 6 PowerBuilder 7

More information

Microsoft Word - 物件導向編程精要.doc

Microsoft Word - 物件導向編程精要.doc Essential Object-Oriented Programming Josh Ko 2007.03.11 object-oriented programming C++ Java OO class object OOP Ruby duck typing complexity abstraction paradigm objects objects model object-oriented

More information

ebook204-2

ebook204-2 Internet Information Services 2 I I S 5 We b We b I I S IIS 5 M i c r o s o f t M i c r o s o f t Active Server Pages A S P We b IIS 5 IIS 5 3 We b IIS 5 We b Microsoft Solutions Framework M S F M S F

More information

<4D6963726F736F667420576F7264202D20B1B1BEA9D6B8C4CFD5EBBFC6BCBCB7A2D5B9B9C9B7DDD3D0CFDEB9ABCBBEB4B4D2B5B0E5CAD7B4CEB9ABBFAAB7A2D0D0B9C9C6B1D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E532303136C4EA36D4C23230C8D5B1A8CBCDA3A92E646F63>

<4D6963726F736F667420576F7264202D20B1B1BEA9D6B8C4CFD5EBBFC6BCBCB7A2D5B9B9C9B7DDD3D0CFDEB9ABCBBEB4B4D2B5B0E5CAD7B4CEB9ABBFAAB7A2D0D0B9C9C6B1D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E532303136C4EA36D4C23230C8D5B1A8CBCDA3A92E646F63> ( 北 京 市 海 淀 区 黑 泉 路 8 号 宝 盛 广 场 B 座 6 层 6001 室 ) 首 次 公 开 发 行 股 票 并 在 创 业 板 上 市 ( 申 报 稿 ) 本 公 司 的 发 行 申 请 尚 未 得 到 中 国 证 监 会 核 准 本 ( 申 报 稿 ) 不 具 有 据 以 发 行 股 票 的 法 律 效 力, 仅 供 预 先 披 露 之 用 投 资 者 应 当 以 正 式 公

More information

I. 1-2 II. 3 III. 4 IV. 5 V. 5 VI. 5 VII. 5 VIII. 6-9 IX. 9 X XI XII. 12 XIII. 13 XIV XV XVI. 16

I. 1-2 II. 3 III. 4 IV. 5 V. 5 VI. 5 VII. 5 VIII. 6-9 IX. 9 X XI XII. 12 XIII. 13 XIV XV XVI. 16 125-0834I/1405/GH I. 1-2 II. 3 III. 4 IV. 5 V. 5 VI. 5 VII. 5 VIII. 6-9 IX. 9 X. 10-11 XI. 11-12 XII. 12 XIII. 13 XIV. 14-15 XV. 15-16 XVI. 16 I. * ++p ++ p ++ ++ * ++p ++ ++ ++p 1 2 ++ ++ ++ ++ ++ I.

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

untitled

untitled COM ActiveX Control 年 ACTIVEX CONTROLS 念... 3 ACTIVEX... 3 MFC ACTIVEX CONTROLWIZARD... 3 MFC ACTIVEX CONTROLS WIZARD... 4 MFC... 4... 4 ACTIVEX... 4 ONDRAW 行... 4 ONDRAW() 數... 5 ACTIVEX... 5 (STOCK PROPERTIES)...

More information

投影片 1

投影片 1 9 1 9-1 Windows XP Windows Server 2003 Mac OS Linux, 都 (OS, Operating System ) 2 3 , 來, 行 3 理 行 4 ,, (UI, User Interface), 滑, 令 列 (CLI, Command-Line Interface) (GUI, Graphical User Interface) 2 5 令 列,

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 9 [P.11] : Dev C++ [P.12] : http://c.feis.tw [P.13] [P.14] [P.15] [P.17] [P.23] Dev C++ [P.24] [P.27] [P.34] C / C++ [P.35] 10 C / C++ C C++ C C++ C++ C ( ) C++

More information

Microsoft Word - COC HKROO App I _Chi_ Jan2012.doc

Microsoft Word - COC HKROO App I _Chi_ Jan2012.doc 附 錄 I 目 錄 項 目 貨 品 描 述 頁 數 (I) 活 動 物 ; 動 物 1 (II) 植 物 2 (III) 動 物 或 植 物 脂 肪 及 油 及 其 分 化 後 剩 餘 的 ; 經 處 理 可 食 的 脂 肪 ; 動 物 或 植 物 蠟 2 (IV) 經 配 製 的 食 品 ; 飲 料 酒 及 醋 ; 煙 草 及 製 成 的 煙 草 代 替 品 2 (V) 礦 產 5 (VI) 化

More information

_汪_文前新ok[3.1].doc

_汪_文前新ok[3.1].doc 普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向

More information

(procedure-oriented)?? 2

(procedure-oriented)?? 2 1 (procedure-oriented)?? 2 (Objected-Oriented) (class)? (method)? 3 : ( 4 ???? 5 OO 1966 Kisten Nygaard Ole-Johan Dahl Simula Simula 爲 6 Smalltalk Alan Kay 1972 PARC Smalltalk Smalltalk 爲 Smalltalk 爲 Smalltalk

More information

C/C++ - 字符输入输出和字符确认

C/C++ - 字符输入输出和字符确认 C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,

More information

施 的 年 度 維 修 工 程 已 於 4 月 15 日 完 成, 並 於 4 月 16 日 重 新 開 放 給 市 民 使 用 ii. 天 水 圍 游 泳 池 的 年 度 維 修 工 程 已 於 3 月 31 日 完 成, 並 於 4 月 1 日 重 新 開 放 給 市 民 使 用 iii. 元

施 的 年 度 維 修 工 程 已 於 4 月 15 日 完 成, 並 於 4 月 16 日 重 新 開 放 給 市 民 使 用 ii. 天 水 圍 游 泳 池 的 年 度 維 修 工 程 已 於 3 月 31 日 完 成, 並 於 4 月 1 日 重 新 開 放 給 市 民 使 用 iii. 元 地 委 會 文 件 2016/ 第 25 號 ( 於 6.5.2016 會 議 討 論 ) 康 樂 及 文 化 事 務 署 在 元 朗 區 內 舉 辦 的 康 樂 體 育 活 動 及 設 施 管 理 綜 合 匯 報 (2016 年 5 月 號 報 告 ) 目 的 本 文 件 旨 在 向 各 委 員 匯 報 康 樂 及 文 化 事 務 署 ( 康 文 署 ) 於 2016 年 2 月 至 5 月 在

More information

科学计算的语言-FORTRAN95

科学计算的语言-FORTRAN95 科 学 计 算 的 语 言 -FORTRAN95 目 录 第 一 篇 闲 话 第 1 章 目 的 是 计 算 第 2 章 FORTRAN95 如 何 描 述 计 算 第 3 章 FORTRAN 的 编 译 系 统 第 二 篇 计 算 的 叙 述 第 4 章 FORTRAN95 语 言 的 形 貌 第 5 章 准 备 数 据 第 6 章 构 造 数 据 第 7 章 声 明 数 据 第 8 章 构 造

More information

Microsoft PowerPoint - ch6 [相容模式]

Microsoft PowerPoint - ch6 [相容模式] UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner

More information

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE Project Properties IDE makefile 1. Oracle Solaris Studio 12.2 IDE 2010 9 2 8 9 10 11 13 20 26 28 30 32 33 Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1. "File" > "New

More information

Microsoft PowerPoint - OPVB1基本VB.ppt

Microsoft PowerPoint - OPVB1基本VB.ppt 大 綱 0.VB 能 做 什 麼? CH1 VB 基 本 認 識 1.VB 歷 史 與 版 本 2.VB 環 境 簡 介 3. 即 時 運 算 視 窗 1 0.VB 能 做 什 麼? Visual Basic =>VB=> 程 式 設 計 語 言 => 設 計 程 式 設 計 你 想 要 的 功 能 的 程 式 自 動 化 資 料 庫 計 算 模 擬 遊 戲 網 路 監 控 實 驗 輔 助 自 動

More information

提纲 1 2 OS Examples for 3

提纲 1 2 OS Examples for 3 第 4 章 Threads2( 线程 2) 中国科学技术大学计算机学院 October 28, 2009 提纲 1 2 OS Examples for 3 Outline 1 2 OS Examples for 3 Windows XP Threads I An Windows XP application runs as a seperate process, and each process may

More information

IP505SM_manual_cn.doc

IP505SM_manual_cn.doc IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP

More information

<4D6963726F736F667420506F776572506F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074>

<4D6963726F736F667420506F776572506F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074> 软 件 架 构 师 研 修 讲 座 胡 协 刚 软 件 架 构 师 UML/RUP 专 家 szjinco@public.szptt.net.cn 中 国 软 件 架 构 师 网 东 软 培 训 中 心 小 故 事 : 七 人 分 粥 当 前 软 件 团 队 的 开 发 现 状 和 面 临 的 问 题 软 件 项 目 的 特 点 解 决 之 道 : 从 瀑 布 模 型 到 迭 代 模 型 解 决 项

More information

untitled

untitled SAP SAP Business One ... 4 SAP Business One... 5... 5 SAP Business One... 7 SAP Business One... 8... 8... 8... 9... 10... 11 mysap Business Suite... 12... 13... 14 Copyright 2004 SAP AG. All rights reserved.

More information

財 務 委 員 會 審 核 2014 至 2015 年 度 開 支 預 算 的 報 告 2014 年 7 月

財 務 委 員 會 審 核 2014 至 2015 年 度 開 支 預 算 的 報 告 2014 年 7 月 香 港 特 別 行 政 區 立 法 會 財 務 委 員 會 審 核 2014 至 2015 年 度 開 支 預 算 的 報 告 2014 年 7 月 財 務 委 員 會 審 核 2014 至 2015 年 度 開 支 預 算 的 報 告 2014 年 7 月 章 節 目 錄 頁 數 I 序 言 1-2 II 公 務 員 事 務 3-9 III 司 法 及 法 律 事 務 10-19 IV 財 經 事

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

More information

- 2 - 获 豁 免 计 算 入 总 楼 面 面 积 及 / 或 上 盖 面 积 的 环 保 及 创 新 设 施 根 据 建 筑 物 条 例 的 规 定 4. 以 下 的 环 保 设 施 如 符 合 某 些 条 件, 并 由 有 关 人 士 提 出 豁 免 申 请, 则 可 获 豁 免 计 算 入

- 2 - 获 豁 免 计 算 入 总 楼 面 面 积 及 / 或 上 盖 面 积 的 环 保 及 创 新 设 施 根 据 建 筑 物 条 例 的 规 定 4. 以 下 的 环 保 设 施 如 符 合 某 些 条 件, 并 由 有 关 人 士 提 出 豁 免 申 请, 则 可 获 豁 免 计 算 入 屋 宇 署 地 政 总 署 规 划 署 联 合 作 业 备 考 第 1 号 环 保 及 创 新 的 楼 宇 引 言 为 了 保 护 和 改 善 建 筑 及 自 然 环 境, 政 府 推 广 建 造 环 保 及 创 新 的 楼 宇, 目 的 是 鼓 励 业 界 设 计 和 建 造 加 入 以 下 措 施 的 楼 宇 : (a) 采 用 楼 宇 整 体 使 用 周 期 方 法 规 划 设 计 建 造 和

More information

2/80 2

2/80 2 2/80 2 3/80 3 DSP2400 is a high performance Digital Signal Processor (DSP) designed and developed by author s laboratory. It is designed for multimedia and wireless application. To develop application

More information

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii 前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time

More information

RDEC-RES

RDEC-RES RDEC-RES-089-005 RDEC-RES-089-005 VI I II III 6 IV 7 3 V VI VII VIII IX X XI XII XIII XIV XV XVI XVII XVIII XIX XX 1 2 3 4 5 6 7 8 躰 ( 9 10 躰 11 12 躰 1 13 14 躰 15 16 躰 17 18 19 1 20 21 22 2 23 24 25 26

More information

2015年廉政公署民意調查

2015年廉政公署民意調查 報 告 摘 要 2015 年 廉 政 公 署 周 年 民 意 調 查 背 景 1.1 為 了 掌 握 香 港 市 民 對 貪 污 問 題 和 廉 政 公 署 工 作 的 看 法, 廉 政 公 署 在 1992 至 2009 年 期 間, 每 年 均 透 過 電 話 訪 問 進 行 公 眾 民 意 調 查 為 更 深 入 了 解 公 眾 對 貪 污 問 題 的 看 法 及 關 注, 以 制 訂 適 切

More information

Java 1 Java String Date

Java 1 Java String Date JAVA SCJP Java 1 Java String Date 1Java 01 Java Java 1995 Java Java 21 Java Java 5 1-1 Java Java 1990 12 Patrick Naughton C++ C (Application Programming Interface API Library) Patrick Naughton NeXT Stealth

More information

Microsoft Word - 11.doc

Microsoft Word - 11.doc 除 錯 技 巧 您 將 於 本 章 學 到 以 下 各 項 : 如 何 在 Visual C++ 2010 的 除 錯 工 具 控 制 下 執 行 程 式? 如 何 逐 步 地 執 行 程 式 的 敘 述? 如 何 監 看 或 改 變 程 式 中 的 變 數 值? 如 何 監 看 程 式 中 計 算 式 的 值? 何 謂 Call Stack? 何 謂 診 斷 器 (assertion)? 如 何

More information

(譯本)

(譯本) 檔 號 : LD SMW 86-1/2(C) 立 法 會 參 考 資 料 摘 要 最 低 工 資 條 例 ( 第 608 章 ) 僱 傭 條 例 ( 第 57 章 ) 2015 年 最 低 工 資 條 例 ( 修 訂 附 表 3) 公 告 2015 年 僱 傭 條 例 ( 修 訂 附 表 9) 公 告 引 言 A 在 二 零 一 五 年 一 月 六 日 的 會 議 上, 行 政 會 議 建 議, 行

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

Microsoft PowerPoint - os_4.ppt

Microsoft PowerPoint - os_4.ppt 行 程 資 科 系 林 偉 川 行 程 概 念 行 程 與 程 式 主 要 的 不 同 點 : 程 式 是 被 放 在 外 部 的 儲 存 裝 置 如 磁 碟 上, 而 行 程 則 被 放 在 記 憶 體 中 程 式 在 儲 存 裝 置 中 是 靜 態 的, 而 行 程 在 記 憶 體 中 是 動 態 的, 它 會 隨 著 一 些 事 件 的 發 生 而 產 生 相 對 的 改 變 行 程, 就 是

More information

奇闻怪录

奇闻怪录 ... 1... 1... 2... 3... 3... 4... 4... 5... 5... 6... 8... 9... 10... 10... 11... 11... 13... 13... 14... 14... 15... 16... 17... 21 I ... 22... 23... 23... 24... 25... 25... 26... 27... 28... 29 UFO...

More information

RunPC2_.doc

RunPC2_.doc PowerBuilder 8 (5) PowerBuilder Client/Server Jaguar Server Jaguar Server Connection Cache Thin Client Internet Connection Pooling EAServer Connection Cache Connection Cache Connection Cache Connection

More information

Microsoft Word - CIN-DLL.doc

Microsoft Word - CIN-DLL.doc 6.3. 调 用 动 态 链 接 库 (DLL) 相 对 于 CIN 来 讲,NI 更 推 荐 用 户 使 用 DLL 来 共 享 基 于 文 本 编 程 语 言 开 发 的 代 码 除 了 共 享 或 重 复 利 用 代 码, 开 发 人 员 还 能 利 用 DLL 封 装 软 件 的 功 能 模 块, 以 便 这 些 模 块 能 被 不 同 开 发 工 具 利 用 在 LabVIEW 中 使 用

More information

untitled

untitled MPICH anzhulin@sohu.com 1 MPICH for Microsoft Windows 1.1 MPICH for Microsoft Windows Windows NT4/2000/XP Professional Server Windows 95/98 TCP/IP MPICH MS VC++ 6.x MS VC++.NET Compaq Visual Fortran 6.x

More information

Eclipse C C++, or

Eclipse C C++,  or Eclipse C C++, Emailctchen@pl.csie.ntut.edu.tw or s1669021@ntut.edu.tw, s2598003@ntut.edu.tw http://pl.csie.ntut.edu.tw/~ctchen, http://www.ntut.edu.tw/~s2598003/ 2004/9/10 (0.02 ) Eclipse http://www.eclipse.org

More information

高 职 计 算 机 类 优 秀 教 材 书 目 * 序 号 书 号 (ISBN) 书 名 作 者 定 价 出 版 / 印 刷 日 期 ** 配 套 资 源 页 码 计 算 机 基 础 课 1 978-7-111-30658-0 计 算 机 应 用 基 础 刘 升 贵 29.00 2012 年 8 月

高 职 计 算 机 类 优 秀 教 材 书 目 * 序 号 书 号 (ISBN) 书 名 作 者 定 价 出 版 / 印 刷 日 期 ** 配 套 资 源 页 码 计 算 机 基 础 课 1 978-7-111-30658-0 计 算 机 应 用 基 础 刘 升 贵 29.00 2012 年 8 月 高 职 计 算 机 类 优 秀 教 材 书 目 * 序 号 书 号 (ISBN) 书 名 作 者 定 价 出 版 / 印 刷 日 期 ** 配 套 资 源 页 码 计 算 机 基 础 课 1 978-7-111-30658-0 计 算 机 应 用 基 础 刘 升 贵 29.00 2012 年 8 月 电 子 教 案 P1 2 978-7-111-27081-2 计 算 机 应 用 基 础 ( 第 2

More information

CANVIO_AEROCAST_CS_EN.indd

CANVIO_AEROCAST_CS_EN.indd 简 体 中 文...2 English...4 SC5151-A0 简 体 中 文 步 骤 2: 了 解 您 的 CANVIO AeroCast CANVIO AeroCast 无 线 移 动 硬 盘 快 速 入 门 指 南 欢 迎 并 感 谢 您 选 择 TOSHIBA 产 品 有 关 您 的 TOSHIBA 产 品 的 详 情, 请 参 阅 包 含 更 多 信 息 的 用 户 手 册 () 安

More information

1.Product Description

1.Product Description LoopView 2002 All rights reserved. LoopView P/N : 51.LVIEW0.100 04/2002 Version 1.6 錄 1...1-1 1.1...1-1 2...2-1 2.1 Castle Rock...2-1 2.1.1...2-1 2.1.2...2-1 2.1.3...2-1 2.1.4 TCP/IP...2-1 2.1.5 SNMPc...2-2

More information

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 C C trio@seu.edu.cn C C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 Week3 C Week5 Week5 Memory & Pointer

More information

(b)

(b) 1. (a) (b) (c) 22 85155 (i) (ii) 2200 5 35% 20% 500 3,000 3015 50% 30 (i) (ii) (iii) (iii) 30% QFII 15% H (20)(5) (iv) (i)(ii) (iii) (iv) (v) 10 30 (vi) 5% (vii) (1) (1) 25%(1) (viii) (ix) 10% 20 45 20

More information

山东出版传媒招股说明书

山东出版传媒招股说明书 ( 山 东 省 济 南 市 英 雄 山 路 189 号 ) 首 次 公 开 发 行 股 票 ( 申 报 稿 ) 保 荐 机 构 ( 主 承 销 商 ) 中 银 国 际 证 券 有 限 责 任 公 司 ( 上 海 市 浦 东 银 城 中 路 200 号 中 银 大 厦 39 层 ) 首 次 公 开 发 行 股 票 ( 一 ) 发 行 股 票 类 型 : 人 民 币 普 通 股 (A 股 ) ( 二 )

More information

PFO_300a_GSG_ENG.book

PFO_300a_GSG_ENG.book GPS Pathfinder Office 入 门 指 南 F 版 本 3.00 修 订 本 A 编 号 :34231-30-CHI 2004 年 5 月 Trimble Navigation Limited Mapping & GIS Business Area 7403 Church Ranch Blvd, Suite 100, Westminster, CO 80021, U.S.A. +1-720-887-4374

More information

Microsoft Word - 小心翼翼的二十一點N.doc

Microsoft Word - 小心翼翼的二十一點N.doc 投 稿 類 別 : 資 訊 類 篇 名 : 小 心 翼 翼 的 二 十 一 點 作 者 : 陳 鈺 文 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 李 伯 謙 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 胡 家 媛 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 指 導 老 師 : 周 曉 玲 老 師 陳 思 亮 主 任 壹 前 言 一 研 究 動 機 平

More information

OOAD PowerDesigner OOAD Applying PowerDesigner CASE Tool in OOAD PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE To

OOAD PowerDesigner OOAD Applying PowerDesigner CASE Tool in OOAD PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE To PowerDesigner Applying PowerDesigner CASE Tool in OOAD albertchung@mpinfo.com.tw PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE Tool PowerDesigner CASE Tool CASE Tool PowerDesignerUnified ProcessUMLing

More information

C/C++ - 函数

C/C++ - 函数 C/C++ Table of contents 1. 2. 3. & 4. 5. 1 2 3 # include # define SIZE 50 int main ( void ) { float list [ SIZE ]; readlist (list, SIZE ); sort (list, SIZE ); average (list, SIZE ); bargragh

More information

Chapter 2

Chapter 2 2 (Setup) ETAP PowerStation ETAP ETAP PowerStation PowerStation PowerPlot ODBC SQL Server Oracle SQL Server Oracle Windows SQL Server Oracle PowerStation PowerStation PowerStation PowerStation ETAP PowerStation

More information

1.ai

1.ai HDMI camera ARTRAY CO,. LTD Introduction Thank you for purchasing the ARTCAM HDMI camera series. This manual shows the direction how to use the viewer software. Please refer other instructions or contact

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

1. 2285 155 2200 35% 30 3015 50% 30 (i) (ii) (iii) [][]15% H (20)(5) (i)(ii) (iii)(iv) 30 5% (1) (1) 25% (1) 10% 2045 20 5% 20 50% 50% 151 20 10% 50% 25% 10% 10% (1)(2)(4)(5)15 1060 3045 H H H (i)(ii)

More information

ebook140-8

ebook140-8 8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4

More information