<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如鵬網 大學生計算機學習社區

    CowNew開源團隊

    http://www.cownew.com 郵件請聯系 about521 at 163.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      363 隨筆 :: 2 文章 :: 808 評論 :: 0 Trackbacks
    當自定義的應用程序向導生成一個項目時,則它只是不能替換自動創建的.dsp 項目設置文件。 .dsp 文件中的項目設置由假定所有生成的項目為 MFC 項目的內部規則設置。 但是,Visual C++ 5.0 的新對象模型允許修改工具設置,以便從生成的項目中刪除所有依賴 MFC 的自定義 AppWizards。

    Visual C++5.0 CCustomAppWiz 類現在具有名為 CustomizeProject 在虛擬重寫。 CustomizeProject 提供與 IBuildProject 接口自定義向導。 IBuildProject 配置方法提供了一個的 IConfiguration 界面,用于在項目中每個生成配置。 IConfiguration 可以添加和刪除如編譯器提供給工具的設置。 在使用這些方法自定義向導可以刪除在 MFC 上添加依存關系的設置。

    示例代碼

    以下是示例 CustomizeProject 重寫的演示 MFC 依賴項的刪除:
       #import "c:\Program Files\DevStudio\SharedIDE\bin\ide\devbld.pkg"
    void CNoMfcCustWizAppWiz::CustomizeProject(IBuildProject* pProject)
    {
    using namespace DSProjectSystem;
    long lNumConfigs;
    IConfigurationsPtr pConfigs;
    IBuildProjectPtr pProj;
    // Needed to convert IBuildProject to the DSProjectSystem namespace
    pProj.Attach((DSProjectSystem::IBuildProject*)pProject, true);
    pProj->get_Configurations(&pConfigs);
    pConfigs->get_Count(&lNumConfigs);
    //Get each individual configuration
    for (long j = 1 ; j < lNumConfigs+1 ; j++)
    {
    _bstr_t varTool;
    _bstr_t varSwitch;
    IConfigurationPtr pConfig;
    _variant_t varj = j;
    pConfig = pConfigs->Item(varj);
    // Remove Preprocessor def for MFC DLL specifier, _AFXDLL
    varTool   = "cl.exe";
    varSwitch = "/D \"_AFXDLL\"";
    pConfig->RemoveToolSettings(varTool, varSwitch, varj);
    varTool   = "rc.exe";
    varSwitch = "/d \"_AFXDLL\"";
    pConfig->RemoveToolSettings(varTool, varSwitch, varj);
    // OPTIONAL
    // Add Libs that MFC headers would have pulled in automatically
    // Feel free to customize this listing to your tastes
    varTool = "link.exe";
    varSwitch = "kernel32.lib user32.lib gdi32.lib winspool.lib "
    "comdlg32.lib advapi32.lib shell32.lib ole32.lib "
    "oleaut32.lib uuid.lib odbc32.lib odbccp32.lib";
    pConfig->AddToolSettings(varTool, varSwitch, varj);
    }
    }
    
    本代碼示例使用 Visual C++ 5.0 的新 COM 編譯器支持功能的說明。 # import 語句導入,并創建 DEVBLD.PKG 類型庫的所有類型的定義。 這將允許使用窗體 IInterfacePtr 的 COM 智能指針,以及新的 _ bstr _ t 和 _ variant _ t 類型代碼。 這些新類型的所有自動清理使用的內存,并在超出范圍時釋放保持的接口指針。

    此外請注意標準的自定義應用程序向導將使用預編譯的頭文件 StdAfx.h。 應當將放 # import # 結尾處的語句 StdAfx.h 中包含列表。

    注意: DevBld.pkg 路徑將不同,如果您使用 Visual C++ 版本 6.0。 假設 Visual C++ 版本 6.0 已安裝到 C: 驅動器上的默認目錄,# import 語句應閱讀,如下所示:
       #import "C:\Program Files\Microsoft Visual Studio\Common\MsDev98\Bin\IDE\DevBld.Pkg"
    
    注意: 上面 </a0>-# import 行必須在代碼中相同的行。

    請參閱有關 Visual C++ 文檔。

    警告

    • 請注意沒有編程的方法可用于刪除內部的項目將該控件設置"Microsoft 基礎類"設置在常規的項目設置由包含上述代碼的自定義向導生成的方式項目仍將顯示"使用 MFC 共享 DLL 中"。 您可以更改此設置,唯一方法是不支持修改.dsp 項目設置文件。 但是,此設置僅用于某些 DevStudio MFC 用戶界面元素如類向導和一些基于 MFC 的組件庫組件。 它應該有一個非 MFC 項目沒有影響。
    • 即使后修改項目設置使用 AddToolSettings 和與上面的 RemoveToolSettings,默認項目設置將仍然保持相同 Visual C++ 版本 5.0 中。 如果項目生成此自定義應用程序向導的用戶打開項目設置,并單擊重置,已還原的項目設置將包含已刪除的 MFC 引用。 再次,防止出現這種唯一的方法是使不支持的更改生成的.dsp 項目設置文件手動自定義應用程序向導已創建項目后。

      Visual C++ 版本 6.0 提供新的自動化方法更改默認項目設置的。 配置對象支持 MakeCurrentSettingsDefault 方法。 此方法更改成為當前的設置配置的默認項目設置。
    • 當您使用 RemoveToolSettings 時,刪除一次的只有一個工具設置。 在上面示例中進行另一調用 RemoveToolSettings CL.EXE 命令行而不是附加到同一個 varSwitch 語句的末尾刪除定義中刪除另一個的預處理器定義。 此外,請記住,工具設置的是大小寫區分"/ d"和"/ D"不是相同的操作。
    • 遺憾的是,AddToolSettings、 RemoveToolSettings,和 AddCustomBuildStep (另一個 IConfiguration 方法) 運行僅在 Visual C++ 版本 5.0 在整個項目上,他們不能進行工具設置或創建自定義生成步驟單個文件。 是例如最好通常添加處理使用 MIDL 文件并生成 TLB 和其他所需的項目文件的一個項目的 IDL 文件的自定義生成步驟。 在 Developer Studio 97 對象模型不支持此。 單個文件的自定義生成步驟需要自定義應用程序向導生成項目后手動添加。

      Visual C++ 版本 6.0 對象模型不會支持若要更改的方法文件設置,并添加自定義生成步驟的文件。 請參閱 Visual C++ 版本 6.0 文檔的下列方法配置對象:
      AddFileSettings
      RemoveFileSettings
      AddCustomBuildStepToFile

    轉載自:http://support.microsoft.com/kb/173483

    大學生計算機學習社區
    posted on 2009-03-08 00:00 CowNew開源團隊 閱讀(591) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 69xx免费观看视频| 国产麻豆视频免费观看| 91免费在线视频| 中文字幕免费在线看| 一级毛片在线免费观看| 69堂人成无码免费视频果冻传媒| 免费看的黄色大片| 亚洲一区二区高清| 亚洲ⅴ国产v天堂a无码二区| 亚洲一区在线视频| 黄页网址大全免费观看12网站| 日本一区午夜艳熟免费| 成年私人影院免费视频网站| 亚洲午夜日韩高清一区| 黄色a级片免费看| 久久精品夜色噜噜亚洲A∨| 亚洲最大的黄色网| 中文字幕免费不卡二区| 国产亚洲精品a在线无码| 亚洲精品精华液一区二区| 久久久精品午夜免费不卡| 免费久久精品国产片香蕉| 亚洲酒色1314狠狠做| 噜噜噜亚洲色成人网站| 人与禽交免费网站视频| 亚洲一区二区三区丝袜| 91大神在线免费观看| 国产亚洲?V无码?V男人的天堂| 国产精品免费高清在线观看| AV在线亚洲男人的天堂| 久久精品成人免费观看| 亚洲人精品亚洲人成在线| 91麻豆最新在线人成免费观看| 亚洲色大网站WWW永久网站| 午夜国产羞羞视频免费网站| 亚洲嫩草影院久久精品| 在线观看免费无码视频| 亚洲国产综合在线| 老司机在线免费视频| 91午夜精品亚洲一区二区三区| 最近免费中文字幕mv在线电影|