介紹
這個例子展示了如何使用乙個包(package)來擴充套件visual studio,使之支援乙個特定檔案型別的編輯器並附帶工具箱支援,在這個例子中我們將實現乙個 .tbx檔案的編輯器以及乙個可用於此文件的工具箱專案。
入門這個例子實現了.tbx檔案的編輯器功能,其內部實際上只是簡單的使用了ricktextbox控制項來編輯文件。這個例子主要還是用來展示編輯器如何與vistual studio工具箱的互動。
這個編輯器使用了svstoolbox服務並實現了ivstoolboxuser介面,以支援於工具箱互動,實現操控工具箱和支援拖動。
在這個編輯器中,支援logviewid_designer邏輯檢視,需要在登錄檔中登記入口資訊以描述這個包支援此字尾。
[hkey_local_machine\software\microsoft\visualstudio\8.0\editors\ ] "displayname"="#106" "package"=""
[hkey_local_machine\software\microsoft\visualstudio\8.0\editors\ \extensions] "addin"=dword:00000032
[hkey_local_machine\software\microsoft\visualstudio\8.0\editors\ \logicalviews] ""=""
其中是指edito***ctory型別的com guid;
指editorpackage的com guid;
指的是 logviewid_designer的值。
這個example.editorwithtoolbox的例子包含乙個intergrationtests的目錄,這個目錄中的測試用例要求你的機器必須安裝vsidetesthost.msi ,這個安裝包將建立 visualstudioteamsystemintegration\test tool extensibility\vsidehostadapter資料夾。
專案檔案
assemblyinfo.cs
包含組裝件的資訊
classdiagram.cd
工程的類描述圖
edito***ctory.cs
實現了ivsedito***ctory介面以建立編輯器的檢視物件
editorpane.cs
實現了editorpane類, 用來容納編輯器 (richtextbox控制項) 並響應編輯器的command命令
editorcontrol.cs
派生自richtextbox.的控制項,用來編輯文字
guidlist.cs
包含了所有的guid定義, 包括package的guid和所有command的guid.
resources.resx
專案的資源檔案. 這些定義將被sampledocvieweditor.vsdir使用.
editorpackage.cs
包含了包的定義,其關於編輯器的attributes定義能夠自動註冊到登錄檔中,他也實現了建立乙個edito***ctory例項,並通知ide (呼叫 ivsregistereditor::registereditor).
templates\tbx.tbx
editorwithtoolbox.vsdir 將使用這個 "tbx"作為例子檔案.
templates\editorwithtoolbox.vsdir
在visual studio的新建對話方塊中,提供模板。
VS自帶工具 dumpbin的使用
有時候我們想檢視乙個exe引用了哪些動態庫,或者我們想看某個動態庫包含哪些介面函式,這個時候可以使用dumpbin.exe工具 1.輸入dumpbin imports calldll.exe檢視它的輸入資訊,可以看到它載入了 dll 2.輸入dumpbin exports dlltest.dll,列...
工具欄的建立
mfc 中工具欄關聯的類 c ctrl c c ctrl c 兩個類的區別 c 和 cstatusbar 都是在 control bars 類中的封裝,而 cstatusbarctrl 和 c ctrl 都是在 controls 類中的封裝。c ctrl 和 cstatusbarctrl 它們只是簡...
解決工具欄中消失了的dev控制項工具欄
有時候會出現這樣一種情況 上次使用的時候工具欄中dev控制項還很正常的顯示,但是下次開啟vs是時候你會發現工具欄中微軟自帶的控制項還乖乖的待在那裡,dev控制項不知道跑哪調皮去啦。這很鬱悶啊,怎麼辦呢?別急,周文王推崇的八卦演繹,天地萬物,相生相剋,下面就是尋找dev藏身之地的途徑。在開始程式裡找到...