VC7到VC6工程的轉換工具

2021-04-25 09:15:30 字數 1355 閱讀 9265

先來個圖:

一、簡介

這個工具自動將vc7工程轉換回vc6工程,換言之,就是將.sln/.vcproj這兩個檔案轉換到.dsw/.dsp檔案。

注意:本轉換器在轉換期間只是建立(或覆蓋).dsw/.dsp檔案,並沒有改變任何源**。

二、由來

首先當然是ms並沒有提供這樣的工具,ms在**開發工具時並沒有提供工程回退的轉換功能使你感到很傷腦筋,甚至開始憎恨ms。

沒有這樣的工具,雖然你可以通過重建工程來湊合,但浪費時間並容易帶來錯誤。事實上,在如下情形時這個工具是很有用的:

有人給你vc7工程,但你只安裝了vc6

你將工程從vc6公升級到vc7,在你的目錄下同時存在.dsw/.dsp和.sln/.vcproj檔案,並且你希望保持這幾個檔案的同步,使你在不需要使用兩個版本vc++的情況下任何時候都可以開啟這個工程開始工作。

提供兩個版本的工程(例如你在codeproject中共享你的**時),而不用擔心讀者使用的是哪個版本的開發工具。

三、如何使用

命令列形式:

prjconverter [.sln]

例如:prjconverter c:/tmp/betterxml/betterxml.sln

可以在命令列鍵入prjconverter.exe獲取更多資訊

四、轉換了什麼

簡單的幾步就可以清楚這是如何工作的,開啟.sln解決方案檔案並轉換到.dsw檔案格式,包括所有的工程定義,依存資訊和源**控制標記。

然後,所有.vcproj工程檔案轉換為.dsp檔案,我使用msxml來解析.vcproj檔案格式,另外建立元模型( meta-model),然後將所有xml內容轉換到標準的.dsp符號行。

當然,我們要小心處理專案中的配置(debug,release,...),還有自定義的配置。

五、技術細節

**中slnprocess.cpp完成從.sln到.dsw的轉換。vcprojprocess.cpp完成從.vcproj到.dsp的轉換。

vcprojconfiguration.cpp包含了所有工程元模型(meta-model)(即所有工程設定選項)。在vc7中元模型是可程式設計的。具體可以檢視此鏈結http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcext/html/vcorivisualcextensibilityobjectmodel.asp ,事實上vcprojconfiguration.cpp就是展現了這種元模型(meta-model,就像ms的內部**)

六、申明

這個工具在發布之前已經經過廣泛的測試(mfc/com/atl/控制台程式,make檔案,...),雖然我希望知道是否有可以改進的地方,但我必須清楚地申明如果你的工程被該工具破壞並不是我的錯。

VC6工程嚮導製作

最近突然發現每天寫點教程對自己的學習很有幫助,所以以後每天都盡量寫點東西吧。關於win32工程嚮導,也許還有很多人不知道這是個什麼玩意,其實很簡單,每次你建立工程檔案的時候vc總會讓你選擇一種是win32專案還是控制台程式等等,這就是嚮導,而今天我要做的就是乙個簡單的窗體嚮導,使用這個嚮導以後,你可...

VC6工程公升級為VC2010 2

1 公升級過程中遇到乙個問題 std swap這個函式在vc6中只要using namespace std 後就可以使用了 在vc2010中還必須 include std swap 這個函式才可以使用 然後就是某大神寫的影象雙快取memdc.h 在vc6.0中使用一點問題都沒有 公升級為vc2010...

打造最強的VC6

你是否覺得vc.net或者vs2005太過龐大?你是否用慣了vc6不願意離開它,但卻總是苦於它對c 標準庫支援得不好?你是否覺得vc6的 提示功能很不完善?喜歡vc6的朋友,不用憂愁。採用下面的方法,我們將改造vc6為最強 大的編譯器。開始改造!一 準備 二 支援c 標準 安裝intel c 8.0...