Ram*_*rma 6 c++ visual-c++ microsoft-metro visual-studio-2013 windows-8.1
当我使用Visual Studio 2013 Preview构建Windows应用商店应用时,我注意到我的应用二进制文件依赖于msvcr120_app.dll.这个DLL是什么?我还注意到msvcr120_app.dll未安装在"C:\ Windows\System32"中,而msvcr120.dll安装在那里.
我不清楚
msvcr120_app.dll和msvcr120.dll有什么区别?
如果在System32中没有安装依赖项msvcr120_app.dll,我的应用程序如何运行(当我在Visual Studio项目中点击F5时)?
Ram*_*rma 10
在Visual Studio 2013中,用于桌面应用程序的C++运行时DLL与用于Windows应用商店应用程序的DLL不同.
桌面应用程序使用名为msvcr120.dll,msvcp120.dll,vcamp120.dll,vcomp120.dll,vccorlib120.dll等运行时DLL.使用位于" $(VCInstallDir)lib "中的C++ Libs构建的二进制文件依赖于这些DLL.
应用商店应用使用运行时DLL名称,如msvcr120_app.dll,msvcp120_app.dll,vcamp120_app.dll,vcomp120_app.dll和vccorlib120_app.dll.使用位于" $(VCInstallDir)lib\store "中的C++ Libs构建的二进制文件依赖于这些DLL.
主要区别在于Store DLL(名称中包含_app的那些)完全使用可用于Store应用程序的Windows API实现.这可以通过在两种类型的DLL上运行"dumpbin/imports"并比较结果来验证.
此外,不需要在System32中安装Store DLL,因为使用此处描述的单独依赖包机制可以满足Store应用程序的运行时依赖性.VS2012和VS2013的VCLibs框架之间的一个区别是:在Visual Studio 2013中,VCLibs调试AppX包中包含Debug和Release CRT DLL.
另请注意,任何包含依赖于桌面C++运行时DLL的二进制文件的商店应用程序都不会被Windows应用商店接受.
归档时间: |
|
查看次数: |
9913 次 |
最近记录: |