COM 組件設計與應用(一)

起源及複合檔案作者:楊老師一、前言  公元一九九五年某個夜黑風高的晚上,我的一位老師跟我說:“小楊呀,以後寫程式就和搭積木一樣啦。你趕快學習一些OLE的技術吧......”,當時我心裡就尋思 :“開什麼玩笑?搭積木方式寫程式?再過100年吧......”,但作為一名聽話的好學生,我開始在書店裡“踅摸”(注1)有關OLE的書籍(注2)。功夫不負有心人,終於買到了我的第一本COM書《OLE2

Object-Oriented Scene Management

 by Jeff KershnerThis article will present an abstract, expandable, object-oriented method to handle generic objects for a practical and organized game engine. These generic objects can be graphical objects such as shapes and meshes, or

怎麼從vector裡刪除元素

  現在用stl的人越來越多, stl確實是套很漂亮的演算法和資料結構庫. 但是初用stl的人往往會遇上很多問題.從一個容器中刪除元素,是很常用的操作,但是也是初學者常會犯錯誤的地方,刪除map和list中元素可能會犯迭代器失效的錯誤. vector是stl裡很常用的一個容器, 和map,list等容器相比, 從vector中刪符合某些條件的元素有更多的麻煩.比如,我們要完成如下的任務.有下面的類class AA{public: AA():n(0){} AA(int b):n(b){} int 

OpenGL Frame Buffer Object

 IntroductionIn the last OpenGL Framebuffer object article we covered the basic usage of an FBO for rendering to a single texture and then applying that texture some where else. However this isn’t all the FBO extension can do; indeed one of the

COM組件設計與應用(二)

GUID 和 介面作者:楊老師一、前言  書接上回,話說在 doc(Word) 複合檔案中,已經解決了儲存 xls(Excel) 資料的問題了。那麼,接下來又要解決另一個問題:當 WORD 程式讀取複合檔案,遇到了 xls 資料的時候,它該如何啟動 Excel 呢?啟動後,又如何讓 Excel 自己去讀入、解析、顯示 xls 資料呢?二、CLSID 概念  有一個非常簡單的解決方案,那就是在對象資料的前面,儲存有處理這個資料的程式名。(見左上)圖一、CLSID 的概念  這的確是一個簡單的方法,

一行一行讀入文字檔

下面是一個例子,它讀入Autoexec.bat的第一行。     #include <stdio.h>     #include <stdlib.h>          main()     {     FILE * fp;     char s[256];     if((fp = fopen("c://autoexec.bat", "r")) == NULL)     {      printf("Can't open file/n");      return;  

COM組件設計與應用(十六)

 連接點(vc.net)作者:楊老師下載原始碼一、前言  上回書介紹了回調介面,在此基礎上,我們理解連接點就容易多了。二、原理圖一、連接點組件原理圖。左側為用戶端,右側為服務端(組件對象)  看著好複雜呀......呵呵,其實簡單的緊:(注1)1、一個 COM 組件,允許有多個連接點對象(IConnectionPoint)。   也就是說可以有多個發生“事件”的源頭。就有3個連接點;2、管理這些連接點的介面叫“連接點容器”(IConnectionPointContainer)。  

淺談網路遊戲的資料轉送處理和防火牆穿越

一般來說,client和server之間的資料交換,分為幾個優先順序,大部分情況下是下面3種:1. 不可以丟失,但是不要求速度。2. 不可以丟失,但是要求速度,確並不是非常嚴格。3. 可以丟失,但是要求速度對於1來說,最直接的例子就是聊天資訊,動態地圖資訊。這些資料不是time-critical的,所以應該使用TCP串連。 在大多數情況下,有專門的  voice/chat server和map server,client到每個server有個TCP串連。一個client有多少個串連根據需要決定。

COM 組件設計與應用(五)

用 ATL 寫第一個組件作者:楊老師下載原始碼一、前言  1、如果你在使用 vc5.0 及以前的版本,請你升級為 vc6.0 或 vc.net 2003;  2、如果你在使用 vc6.0 (ATL 3.0)請閱讀本回內容;  3、如果你在使用 vc.net(ATL 7.0)請閱讀下回內容;(當然讀讀本文內容也不錯)  4、這第一個組件,除了所有 COM 組件必須的 IUnknown 介面外,我們再實現一個自己定義的介面 IFun,它有兩個函數:

用多線程枝術實現Winsock編程

                                                                                                 作者:王廣偉 李維釗一、Windsock簡介  Winsock(Windows Sockets)是微軟的視窗系統結構(WOSA)的一部分。它是基於UNIX上的 Ber Keley Software

COM 組件設計與應用(七)

 編譯、註冊、調用作者:楊老師一、前言  上兩回中,咱們用 ATL 寫了第一個 COM 組件程式,這回中,主要介紹編譯、註冊和調用方法。樣本程式你已經下載了嗎?如果還沒有下載,vc6.0 的使用者點這裡,vc.net 的使用者點這裡。二、關於編譯  2-1 最小依賴  “最小依賴”,表示編譯器會把 ATL 中必須使用的一些函數靜態串連到目標程式中。這樣目標檔案尺寸會稍大,但獨立性更強,安裝方便;反之系統執行的時候需要有 ATL.DLL

高效率的3D圖形數學庫

http://dev.gameres.com/Vector概覽 潛水了很長時間,該是做點貢獻的時候了,最近寫的,發上來給各位拍磚:  SSE與矩陣相乘 這次將介紹SSE擴充指令集,以及矩陣乘法的最佳化,不喜彙編者請發送WM_CLOSE訊息!!閑話就不說了,SSE指令的曆史到處都是,主要說說我對指令集的原理、作用和用法的理解。

Boost.Regex

ContentsIntroduction Types Regular Expression Creation Overloaded Algorithms regex_match regex_search regex_replace Iterators regex_iterator creation helper regex_token_iterator creation helpers IntroductionThe header <boost/regex/mfc.hpp>

COM組件設計與應用(八)

 實現多介面作者:楊老師下載原始碼一、前言    從第五回開始到第七回,咱們用 ATL 寫了一個簡單的 COM 組件,之所以說簡單,是因為在組件中,只實現了一個自訂(custom)的介面 IFun。當然如果想偷懶的話,我們可以把 200 個函數都加到這一個介面中, 果真如此的話,恐怕就沒有人喜歡使用我們這個組件了。一個組件既然可以提供多個介面,那麼我們在設計的時候,就應該按照函數的功能進行分類,把不同功能分類的函數用多個介面表現出來。這樣可以有如下的一些好處:   

COM組件設計與應用(十三)

 事件和通知(VC6.0)作者:楊老師下載原始碼一、前言  我的 COM 組件運行時產生一個視窗,當使用者雙擊該視窗的時候,我需要通知調用者;  我的 COM 組件用線程方式下載網路上的一個檔案,當我完成任務後,需要通知調用者;  我的 COM 組件完成一個鐘錶的功能,當預定時間到達的時候,我需要通知調用者;  ... ... ... ...  本回書開始話說 COM 的事件、通知、連接點......這些內容比較多,我分兩次(共四回)來介紹。二、通知的方法  當程式甲方內部發生了某個事件的時候,

COM組件設計與應用(九)

IDispatch 介面 for vc6.0作者:楊老師下載原始碼一、前言    終於寫到了第九回,我也一直期盼著寫這回的內容耶,為啥呢?因為自動化(automation)是非常常用、非常有用、非常精彩的一個 COM 功能。由於 WORD、EXCEL 等 OFFICE 軟體提供了“宏”的功能,就連我們使用的VC開發環境也提供了“宏”功能,更由於 HTML、ASP、JSP 等都要依靠指令碼(Script)的支援,更體現出了自動化介面的重要性。    如果你使用 vc6.0 的開發環境,請繼續閱讀。

COM組件設計與應用(十四)

事件和通知(vc.net)作者:楊老師下載原始碼一、前言  我的 COM 組件運行時產生一個視窗,當使用者雙擊該視窗的時候,我需要通知調用者;  我的 COM 組件用線程方式下載網路上的一個檔案,當我完成任務後,需要通知調用者;  我的 COM 組件完成一個鐘錶的功能,當預定時間到達的時候,我需要通知調用者;  ... ... ... ...  本回書開始話說 COM 的事件、通知、連接點......這些內容比較多,我分兩次(共四回)來介紹。二、通知的方法  當程式甲方內部發生了某個事件的時候,

COM組件設計與應用(十)

 IDispatch 介面 for vc.net作者:楊老師下載原始碼一、前言    終於寫到了第十回,我也一直期盼著寫這回的內容耶,為啥呢?因為自動化(automation)是非常常用、非常有用、非常精彩的一個 COM 功能。由於 WORD、EXCEL 等 OFFICE 軟體提供了“宏”的功能,就連我們使用的VC開發環境也提供了“宏”功能,更由於 HTML、ASP、JSP 等都要依靠指令碼(Script)的支援,更體現出了自動化介面的重要性。    如果你使用 vc6.0

COM組件設計與應用(十五)

連接點(vc6.0)作者:楊老師下載原始碼一、前言  上回書介紹了回調介面,在此基礎上,我們理解連接點就容易多了。二、原理圖一、連接點組件原理圖。左側為用戶端,右側為服務端(組件對象)  看著好複雜呀......呵呵,其實簡單的緊:(注1)1、一個 COM 組件,允許有多個連接點對象(IConnectionPoint)。   也就是說可以有多個發生“事件”的源頭。就有3個連接點;2、管理這些連接點的介面叫“連接點容器”(IConnectionPointContainer)。  

COM 組件設計與應用(十一)

IDispatch 及雙介面的調用作者:楊老師下載原始碼一、前言    前段時間,由於工作比較忙,沒有能及時地寫作。其間收到了很多網友的來信詢問和鼓勵,在此一併表示感謝。咳......我也需要工作來養家糊口呀......    上回書介紹了兩種方法來寫自動化(IDispatch)介面的組件程式,一是用 MFC 方式編寫“純粹”的 IDispatch 介面;二是用 ATL 方式編寫“雙介面”的組件。 二、IDispatch 介面和雙介面    使用者要想調用普通的 COM

總頁數: 61357 1 .... 24369 24370 24371 24372 24373 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.