用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=""$(IntDir)""
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3" ---> 1
UsePrecompiledHeader="2"
WarningLevel="4"
DebugInformationFormat="4"
/>