Time of Update: 2018-12-03
起源及複合檔案作者:楊老師一、前言 公元一九九五年某個夜黑風高的晚上,我的一位老師跟我說:“小楊呀,以後寫程式就和搭積木一樣啦。你趕快學習一些OLE的技術吧......”,當時我心裡就尋思 :“開什麼玩笑?搭積木方式寫程式?再過100年吧......”,但作為一名聽話的好學生,我開始在書店裡“踅摸”(注1)有關OLE的書籍(注2)。功夫不負有心人,終於買到了我的第一本COM書《OLE2
Time of Update: 2018-12-03
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
Time of Update: 2018-12-03
現在用stl的人越來越多, stl確實是套很漂亮的演算法和資料結構庫. 但是初用stl的人往往會遇上很多問題.從一個容器中刪除元素,是很常用的操作,但是也是初學者常會犯錯誤的地方,刪除map和list中元素可能會犯迭代器失效的錯誤. vector是stl裡很常用的一個容器, 和map,list等容器相比, 從vector中刪符合某些條件的元素有更多的麻煩.比如,我們要完成如下的任務.有下面的類class AA{public: AA():n(0){} AA(int b):n(b){} int
Time of Update: 2018-12-03
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
Time of Update: 2018-12-03
GUID 和 介面作者:楊老師一、前言 書接上回,話說在 doc(Word) 複合檔案中,已經解決了儲存 xls(Excel) 資料的問題了。那麼,接下來又要解決另一個問題:當 WORD 程式讀取複合檔案,遇到了 xls 資料的時候,它該如何啟動 Excel 呢?啟動後,又如何讓 Excel 自己去讀入、解析、顯示 xls 資料呢?二、CLSID 概念 有一個非常簡單的解決方案,那就是在對象資料的前面,儲存有處理這個資料的程式名。(見左上)圖一、CLSID 的概念 這的確是一個簡單的方法,
Time of Update: 2018-12-03
下面是一個例子,它讀入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;
Time of Update: 2018-12-03
連接點(vc.net)作者:楊老師下載原始碼一、前言 上回書介紹了回調介面,在此基礎上,我們理解連接點就容易多了。二、原理圖一、連接點組件原理圖。左側為用戶端,右側為服務端(組件對象) 看著好複雜呀......呵呵,其實簡單的緊:(注1)1、一個 COM 組件,允許有多個連接點對象(IConnectionPoint)。 也就是說可以有多個發生“事件”的源頭。就有3個連接點;2、管理這些連接點的介面叫“連接點容器”(IConnectionPointContainer)。
Time of Update: 2018-12-03
一般來說,client和server之間的資料交換,分為幾個優先順序,大部分情況下是下面3種:1. 不可以丟失,但是不要求速度。2. 不可以丟失,但是要求速度,確並不是非常嚴格。3. 可以丟失,但是要求速度對於1來說,最直接的例子就是聊天資訊,動態地圖資訊。這些資料不是time-critical的,所以應該使用TCP串連。 在大多數情況下,有專門的 voice/chat server和map server,client到每個server有個TCP串連。一個client有多少個串連根據需要決定。
Time of Update: 2018-12-03
用 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,它有兩個函數:
Time of Update: 2018-12-03
作者:王廣偉 李維釗一、Windsock簡介 Winsock(Windows Sockets)是微軟的視窗系統結構(WOSA)的一部分。它是基於UNIX上的 Ber Keley Software
Time of Update: 2018-12-03
編譯、註冊、調用作者:楊老師一、前言 上兩回中,咱們用 ATL 寫了第一個 COM 組件程式,這回中,主要介紹編譯、註冊和調用方法。樣本程式你已經下載了嗎?如果還沒有下載,vc6.0 的使用者點這裡,vc.net 的使用者點這裡。二、關於編譯 2-1 最小依賴 “最小依賴”,表示編譯器會把 ATL 中必須使用的一些函數靜態串連到目標程式中。這樣目標檔案尺寸會稍大,但獨立性更強,安裝方便;反之系統執行的時候需要有 ATL.DLL
Time of Update: 2018-12-03
http://dev.gameres.com/Vector概覽 潛水了很長時間,該是做點貢獻的時候了,最近寫的,發上來給各位拍磚: SSE與矩陣相乘 這次將介紹SSE擴充指令集,以及矩陣乘法的最佳化,不喜彙編者請發送WM_CLOSE訊息!!閑話就不說了,SSE指令的曆史到處都是,主要說說我對指令集的原理、作用和用法的理解。
Time of Update: 2018-12-03
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>
Time of Update: 2018-12-03
實現多介面作者:楊老師下載原始碼一、前言 從第五回開始到第七回,咱們用 ATL 寫了一個簡單的 COM 組件,之所以說簡單,是因為在組件中,只實現了一個自訂(custom)的介面 IFun。當然如果想偷懶的話,我們可以把 200 個函數都加到這一個介面中, 果真如此的話,恐怕就沒有人喜歡使用我們這個組件了。一個組件既然可以提供多個介面,那麼我們在設計的時候,就應該按照函數的功能進行分類,把不同功能分類的函數用多個介面表現出來。這樣可以有如下的一些好處:
Time of Update: 2018-12-03
事件和通知(VC6.0)作者:楊老師下載原始碼一、前言 我的 COM 組件運行時產生一個視窗,當使用者雙擊該視窗的時候,我需要通知調用者; 我的 COM 組件用線程方式下載網路上的一個檔案,當我完成任務後,需要通知調用者; 我的 COM 組件完成一個鐘錶的功能,當預定時間到達的時候,我需要通知調用者; ... ... ... ... 本回書開始話說 COM 的事件、通知、連接點......這些內容比較多,我分兩次(共四回)來介紹。二、通知的方法 當程式甲方內部發生了某個事件的時候,
Time of Update: 2018-12-03
IDispatch 介面 for vc6.0作者:楊老師下載原始碼一、前言 終於寫到了第九回,我也一直期盼著寫這回的內容耶,為啥呢?因為自動化(automation)是非常常用、非常有用、非常精彩的一個 COM 功能。由於 WORD、EXCEL 等 OFFICE 軟體提供了“宏”的功能,就連我們使用的VC開發環境也提供了“宏”功能,更由於 HTML、ASP、JSP 等都要依靠指令碼(Script)的支援,更體現出了自動化介面的重要性。 如果你使用 vc6.0 的開發環境,請繼續閱讀。
Time of Update: 2018-12-03
事件和通知(vc.net)作者:楊老師下載原始碼一、前言 我的 COM 組件運行時產生一個視窗,當使用者雙擊該視窗的時候,我需要通知調用者; 我的 COM 組件用線程方式下載網路上的一個檔案,當我完成任務後,需要通知調用者; 我的 COM 組件完成一個鐘錶的功能,當預定時間到達的時候,我需要通知調用者; ... ... ... ... 本回書開始話說 COM 的事件、通知、連接點......這些內容比較多,我分兩次(共四回)來介紹。二、通知的方法 當程式甲方內部發生了某個事件的時候,
Time of Update: 2018-12-03
IDispatch 介面 for vc.net作者:楊老師下載原始碼一、前言 終於寫到了第十回,我也一直期盼著寫這回的內容耶,為啥呢?因為自動化(automation)是非常常用、非常有用、非常精彩的一個 COM 功能。由於 WORD、EXCEL 等 OFFICE 軟體提供了“宏”的功能,就連我們使用的VC開發環境也提供了“宏”功能,更由於 HTML、ASP、JSP 等都要依靠指令碼(Script)的支援,更體現出了自動化介面的重要性。 如果你使用 vc6.0
Time of Update: 2018-12-03
連接點(vc6.0)作者:楊老師下載原始碼一、前言 上回書介紹了回調介面,在此基礎上,我們理解連接點就容易多了。二、原理圖一、連接點組件原理圖。左側為用戶端,右側為服務端(組件對象) 看著好複雜呀......呵呵,其實簡單的緊:(注1)1、一個 COM 組件,允許有多個連接點對象(IConnectionPoint)。 也就是說可以有多個發生“事件”的源頭。就有3個連接點;2、管理這些連接點的介面叫“連接點容器”(IConnectionPointContainer)。
Time of Update: 2018-12-03
IDispatch 及雙介面的調用作者:楊老師下載原始碼一、前言 前段時間,由於工作比較忙,沒有能及時地寫作。其間收到了很多網友的來信詢問和鼓勵,在此一併表示感謝。咳......我也需要工作來養家糊口呀...... 上回書介紹了兩種方法來寫自動化(IDispatch)介面的組件程式,一是用 MFC 方式編寫“純粹”的 IDispatch 介面;二是用 ATL 方式編寫“雙介面”的組件。 二、IDispatch 介面和雙介面 使用者要想調用普通的 COM