天天看點

VC2008 ATL控件 去掉運作庫依賴

用VC++2008開發ATL COM控件,由于功能簡單,為了能讓控件不依賴于VC++運作庫,做了下列設定:

1、設定“Use of ATL”為“Static Link to ATL”,這樣就不需要ATL90運作庫

2、第一步完成後編譯,發現還依賴于MSVCR90(d).DLL,可先設定“Use of MFC”為“Use MFC in a Static Library”,然後編譯,不用理會編譯警告,然後再改回“Use Standard Windows Libraries”,再編譯,就不依賴于MSVCR90.DLL了。

檢視VC++工程,發現其原因是編譯選項RuntimeLibrary預設是3(MFC 動态),經過改動後就變為1,是以該問題實際上是VC++界面上的選型和實際預設值不一樣,以上的第2步不需要多次編譯應該也行,隻需要先改為“Use MFC in a Static Library”,點“應用”,然後馬上改為“Use Standard Windows Libraries”,這樣就把預設值改為顯式指定了。

<Tool

                Name="VCCLCompilerTool"

                Optimization="0"

                AdditionalIncludeDirectories="&quot;$(IntDir)&quot;"

                PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL"

                MinimalRebuild="true"

                BasicRuntimeChecks="3"

                RuntimeLibrary="3"  --->  1

                UsePrecompiledHeader="2"

                WarningLevel="4"

                DebugInformationFormat="4"

            />

繼續閱讀