VS2008编译ATL不需要依赖VC库的解决方法
(创建时间:2014年08月22日 18:32:41)
Jangogo : 

用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"
           />


可上传附件
选择
同时转发此条
回复
1楼