亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

編程實現自定義解決方案

系統 1743 0

作者:朱金燦

來源:blog.csdn.net/clever101

一般開發我喜歡遵循下面的規范:在項目解決方案文件夾下建5個文件夾:

文件夾名

備注

src

存放解決方案的源代碼

thirdparty

存放第三方庫的源代碼(無源碼的就存放頭文件)

Doc

存放該項目的相關文檔,我一般在Doc文件夾下又新建三個文件夾:

Design -- 項目設計方面的文檔

Experience -- 項目經驗總結

Other -- 項目其它方面的文檔,包括參考資料方面的

Debug

Debug版輸出文件夾

Release

Release版輸出文件夾

但是使用VS 2005新建一個空白解決方案,往往是新建一個解決方案文件夾再加一個sln文件,我往往要手動建一個src文件夾,再將sln文件拷貝到該文件夾下,然后再新建thirdparty、Doc、Debug、Release,這樣重復的的工作是程序員不愿意干的。我想到了使用編程實現這樣的重復勞動。開始的想法大致就是指定一個sln文件存放文件夾,然后就自動生成一個項目解決方案文件夾,里面有src、thirdparty、Doc、Debug和Release等5文件夾,其中src文件夾下有一個sln文件,Doc文件夾下有Design、Experience和Other三個文件夾。

首先需要解決的難題是sln文件是如何生成的,開始我的想法是通過創建進程,調用devenv.exe的命令行用法來新建空白解決方案文件,但是上網搜索了一陣,感覺VS 2005的命令行用法太過于復雜,只好另想辦法。我想到的第二種折中辦法是先用VS 2005生成一個臨時的sln文件Solution1.sln,放在我這個程序的exe文件所在目錄下,然后到時通過拷貝sln文件的辦法拷貝到用戶的指定路徑下,再重命名就行了。這樣做的一個麻煩是到時發布程序時必須帶兩個文件:exe文件和Solution1.sln。想了一下,決定使用這樣一種做法,把臨時sln文件作為資源注入到exe文件,到時運行程序時再釋放出來。

開始開發,新建一個基于對于框的工程SlnGen,然后使用VS 2005新建一個空白解決方案,生成一個Solution1.sln,再將Solution1.sln作為一種資源導入到SlnGen工程,具體操作如下:

1.在資源視圖中選擇"添加資源",然后在對話框中選中Solution1.sln,如下圖:

<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><! /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!--[endif]-->

2. 自定義一種資源 :RT_SLN

<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]-->

<!--[if gte mso 10]> <mce:style><! /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!--[endif]-->

3. 按確定后生成一個新資源,其資源 ID IDR_RT_SLN1

開始編碼。其實程序的邏輯很簡單:就是首先新建一個解決方案文件夾,然后新建一個 src 文件,再從資源中釋放出 sln 文件,將其存放在 src 文件下,再新建余下的文件。

主體代碼如下:

<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]-->

<!--[if gte mso 10]> <mce:style><! /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!--[endif]-->

程序美中不足的是生成的 sln 文件在磁盤顯示的是 unrecognized version( 未識別的文件版本 ) 。不過這個絲毫不影響使用,我使用 VS 2005 打開后再新建一個工程,馬上顯示是 VS 2005 版本的解決方案文件。

程序界面如下:


編程實現自定義解決方案


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 荡女人人爱np粗口 | 久久欧美精品欧美久久欧美 | 青青国产成人久久91网站站 | 精品综合一区二区三区 | 国内精品久久久久久影院网站小说 | 国产精品99久久久久久夜夜嗨 | 爱爱的免费视频 | 国产综合色香蕉精品五月婷 | 国内女高中生一级毛片 | 国产精品午夜在线观看 | 九九久久国产精品大片 | 国产欧美日韩精品一区二 | 久久久久久久久久免费视频 | 夜夜骑日日操 | 国产成人精品免费大全 | 综合色久七七综合七七蜜芽 | 久久视频在线 | 老司机午夜精品视频播放 | 国产成人aa视频在线观看 | 狠狠色噜狠狠狠狠 | 欧美刺激午夜性久久久久久久 | 日本欧美另类 | 香蕉精品 | 91麻豆精品 | 另类综合网 | 国产日韩久久久久69影院 | 久久99国产亚洲高清 | 久久成人乱小说 | 成人影院久久久久久影院 | 中文一区二区 | 久久影院视频 | 九九中文字幕 | 中文字幕或区 | 久久精品综合一区二区三区 | 伊人久久综合视频 | 天天爽夜夜爽免费看 | 欧美激情在线视频播放 | 99久久国产亚洲综合精品 | 欧美久在线观看在线观看 | 精品久久国产老人久久综合 | 美女久久精品 |