July
7th,
2004
前言:
這些資料的產生是由於我在做DEBUG的時候,往往無法在VC下無法在某些函示中設定BreakPoint,令我相當困擾。所以去詢問老闆的結果,才讓我知道關於Side-By-Side的概念,於是想說將現在所瞭解到的概念加以整理一下,希望以後用到會清楚一點,也希望能幫助到一些有需要的人。
大綱:
這份文件主要稍微介紹到在WIN XP下呼叫COM物件的基本流程與Side-By-Side的概念。
COM元件的版本問題
維護一個大型程式的開發往往是相當困難的,加上軟體的開發流程上經常將許多的程式寫成COM元件,透過程式碼來呼叫這些COM元件來達成相對應的功能,由於程式在呼叫COM元件的時候,主要是透過uuid(guid)來呼叫,而每一個DLL在電腦中也只會存在著唯一的識別子,所以不會有名稱衝突的問題,但是在程式的研發之中,我們會發現隨著對於DLL檔案裡面程式碼的修改,檔案若是存在在相同的位置還好,若儲存與原先不同的位置,由於呼叫COM都是透過Registry中所登記的介面(Interface)來呼叫,就會發生想要使用新建立的COM卻是呼叫到原有系統中的元件。於是乎COM物件的版本控制變的重要,這樣一來往往就會有COM元件的版本問題,舉例來說:針對資料庫的存取,系統已經有一個名為FoolDB COM object,若是我們要針對這個功能加以修改,當程式要求程式讀取COM時,透過Registry則會主動去讀取就得元件而不會使用我們所建立出來新的元件。要完成這樣的事件,則需要使用Side-By-Side的對應方式
在XP下的Side-By-Side對應方式
所謂的Side-By-Side就是希望程式能執行與自己相關的元件(EXE,DLL),而不要去執行系統上所登記的元件。在XP系統上有兩種方式可以達成這樣的結果
XP上:建立一個LOCAL檔,假設有一個程式名為fool.exe,若希望他執行該目錄下的元件,則建立一個檔案,fool.exe.local 即可,Windows在執行該檔案時,當他發現這個LOCAL檔時,則會主動去執行該目錄下的其他元件,而不用系統上登陸的元件。
在XP的SP1上:透過ServerPack的XP,可以說是更加的麻煩了。必須建立一個對應的檔案名稱,名為manifest 裡面必須儲存著COM元件的XML資料。其資料格式可能如下:
>
>
>
>
裡面存放著元件的名稱與UIID,也就是宣告系統,當呼叫到這些元件的時候,請執行目前這個目錄裡面的元件,而不要使用系統上的元件。
簡單介紹,關於COM的其他概念,我本身也還在摸索,以後有心得在波出來。
繼續閱讀
July
2nd,
2004
前言:
這篇文章主要是利用VC教導修改Registry中[HKEY_CLASSES_ROOT]中的新增一個檔案類型,也就是當你在檔案管理員中按下[工具]–>[資料夾選項]->[檔案類型]。在這裡會有相當多的檔案類型會出現,並且會有個別的ICON(圖示)也就是我們在檔案管理員下會看到的特別圖示(比如說:ZIP是一個壓縮檔的圖案)。而現在就是告訴各位,如何利用VC撰寫一個可以新增一個檔案類型,並且指定好開檔類型與檔名顯示的方法。
修改原理:
在這裡,先教導大家關於這個程式的一些原理所在。首先,我們都知道在[開始功能表]->[執行]打上regedit,是可以開啟[登錄編輯程式]的,在這裡要為大家稍微介紹一下,登錄編輯程式裡面參數的介紹,在Registry裡面有五個主要參數,在這裡HKEY_CLASSES_ROOT裡面主要就是存放我們所提到的[檔案類型]的相關資料,將這個參數展開,一開始會是一堆的附檔名為首的變數(*~.1~.aXX~.ZXX)
想要在[工具]–>[資料夾選項]->[檔案類型]裡面去新增一個檔案類型,可以按下[新增],設定好一個附檔名(Extension Name),並且選取好相關應用程式與對應的參數(比如說 OPEN~~),還有對應的ICON圖形。
若要在REGISTRY中設定,與[工具]–>[資料夾選項]->[檔案類型]->[新增]有相同的作用,而這裡的變數具有一定的對照關係。要增加一個新的檔案類型,依照以下步驟去建立:
首先你必須要設定好一個新的附檔名(EX:.ZZD),也就是建立一個機碼
在該機碼上給定一個字串值(default ==> FoolProductID),也就是你自己隨便取的類別ID。
建立另外一個相對應的機碼,名稱為FoolProductID,並且在其中寫下字串值,(default ==> Fool_Name),
若想要設定相關的ICON圖形,則必須在其中再設定一個子機碼,名稱為DefaultIcon,並在內寫下一個字串值(default ==> Fool_Icon_Address),在此Fool_Icon_Address是由某些程式產生出來的,比如說%System/notepad.exe,1
下一次在介紹,相關指令與程式的全貌~~~
#Debug 去~~~~~
繼續閱讀
June
29th,
2004
最近,去光華商場買了顆2.5吋的硬碟,加上一個USB外接盒於是乎馬上變成了一個隨身攜帶的大容量隨身碟。但是,使用上怪怪的也就算了,只要一斷電,裡面的資料全部都不能用???
是怎樣~~~ 我的_硬碟_~~ 原來跟_RAM_一樣阿????
繼續閱讀
June
28th,
2004
今天,到了學校去辦離校手續,其實也不是那麼久才離校的說,論文早早在五月底的時候就口試完成,只是因為卡在去成功嶺服補充兵役的關係,之後又到了公司去上班,所以直到今天才真正有時間去學校把離校手續辦完。
頂個大光頭去學校,其實倒也不會不好意思啦~~看到了學弟們依然相當有朝氣的樣子,自己也好像回到學生時代(~~ㄟ
我好像還算是學生唷~~
因為還沒離校ㄇㄟ~~~)。恰巧今天還是研究所新生的說明會,裡面主要的流程不就是老師們上台講解一些自己的研究方向與領域,吸引著同學來加入他們的旗下,看著研究所新生一副好騙的樣子~~
—____–”” ㄟ~~
是一副天真無邪的樣子。真是不想讓他們知道,研究生不是這樣當滴,是很辛苦滴。抱著大學生的心態,我想很難把研究所的研究做的好。
記得之前曾經看過有位交大的老師寫給學生的一些文章,裡面主要是幫助剛進入研究所的同學安排著每學期應該要有的準備,與做學問的方法,其實算是蠻不賴的,大家可以在此按下右鍵,另存新檔,去看看裡面的資料。
後來,中午與學弟去買著便當,度過了最後碩士生涯,收拾所有的書本,我想~~~
是該迎向下一步的時候。
繼續閱讀
June
25th,
2004
最近經常在閱讀許多大陸的網站,裡面就會提到關於GOOGLE的一些訊息,比如說受人爭議的GMAIL,或是ORKUT等等其他創世紀的功能。但是最近直到看到一篇關於GOOGLE大陸軟體功能的文章,才發現原來GOOGL在大陸有許多好玩的功能,如詳細敘述裡面有講到的,看來以後得多看幾個國家的GOOGLE,(聽說YAHOO也是這樣的~~ 各國功能都差很多~~~國外100MB,我們就還沒有 @﹍﹍@) 有興趣~~去看看阿~~ > > >  > > **所有网站** [图像](http://www.google.com/imghp?hl=zh-CN&tab=wi) [网上论坛](http://www.google.com/grphp?hl=zh-CN&tab=wg) [网页目录](http://www.google.com/dirhp?hl=zh-CN&tab=wd) > > > > > > [高级搜索](http://www.google.com/advanced_search?hl=zh-CN) [使用偏好](http://www.google.com/preferences?hl=zh-CN) [语言工具](http://www.google.com/language_tools?hl=zh-CN) > > 搜索所有网站搜索所有中文网页搜索简体中文网页 > > > 最新推出! 快来试一试 Google 的中英文字典, 天气, 股票和其他[特殊搜索功能](http://www.google.com/intl/zh-CN/features.html#dictionary)! - [Google 大全](http://www.google.com/intl/zh-CN/about.html) - [Google.com in English](http://www.google.com/ncr) > > [将 Google 设为首页!](http://www.google.com/mgyhp.html) > > ?2004 Google - 搜索 4,285,199,774 张网页 > > **按链接搜索** > > 有一些词后面加上冒号对 Google 具有特殊的含义。其中的一个词是“link:”。查询 link: 显示所有指向该网址的网页。例如,“link:www.google.com”将找出所有指向 Google 主页的网页。不能将 link: 搜索与普通关键词搜索结合使用。 > > > _示例: _ > > > > > * * * > > **指定网域** > > 有一些词后面加上冒号对 Google 有特殊的含义。其中的一个词是“site:”。要在某个特定的域或站点中进行搜索,可以在 Google 搜索框中输入“site:xxxxx.com”。 > > 例如,要在 Google 站点上查找新闻,可以输入: > > > _示例: _ > > > > > * * * > > **手气不错** > > 按下“手气不错?”按钮将自动进入 Google 查询到的第一个网页。您将完全看不到其它的搜索结果。使用“手气不错”进行搜索表示用于搜索网页的时间较少而用于检查网页的时间较多。 > > 例如,要查找 Stanford 大学的主页,只需在搜索字段中输入“Stanford”,然后单击“手气不错”按钮。Google 将直接带您进入 Stanford 大学的官方主页 www.stanford.edu。 > > > _示例: _ > > > > > 您的手气如何? > > * * * > > **中英文字典** > > Google 给中英文单词互译带来了极大的方便。您只需输入一个关键词(“翻译”,“fy”...
繼續閱讀
June
24th,
2004
在利用VC維護一個專案的時候,有許多有用的工具是很建議大家安裝的。
首先是Visual Asssit利用這個工具可以幫助你輕鬆的顯示程式碼,快速切換H與CPP之間,並且可以快速找到相關的程式碼。
再來是維護大型專案一定會用到的伺服器軟體,Perforce可讓一個大型專案很容易的被大家所維護,不僅僅是保護程式碼與做CVS而已,也像patrick所提到的一樣, source code branching沒有透過Perforce將是相當困難的。最後還有一個比對檔案的軟體Araxis Merge,利用這個東西可以比對兩個檔案所不同之處,加上Perforce本身所提供的檔案整合功能,再做專案的Branching時將是相當的方便的。
以上這幾個軟體,算是公司同事李每個人都會運用到的軟體,在這裡跟大家分享一下,也希望大家會利用到這些軟體使得開發軟體上更加的容易。
繼續閱讀