Windows 8认证要求:与运行时动态链接

时间:2013-01-07 17:41:28

标签: windows-8 visual-studio-2012 static-linking msvcrt

我们的产品包含我们发送给客户的DLL。

在提供Windows 8版本时,我注意到我无法静态链接CRT,否则使用我们的DLL的应用程序无法通过认证。

我找不到任何提到这个的文件。有人知道为什么不可能或如何实现它?

我们的产品仅使用malloc / free和数学函数。静态链接CRT会更加简单,而不是要求每个链接我们的应用程序安装正确的vc redist。 (和ffs为什么不是通过Windows Update频道部署的vc redists?)

1 个答案:

答案 0 :(得分:1)

只能使用VS 2012和当前的CRT构建Windows应用商店应用。关键点是Windows Store应用程序不支持CRT的静态链接。

以下是有关CRT的更多信息:

Windows应用商店应用,Windows运行时和C运行时 http://msdn.microsoft.com/en-us/library/hh972425.aspx

以下是UNSUPPORTED crt例程列表: http://msdn.microsoft.com/en-us/library/hh674596.aspx

Rob Caplan在这里写道:

http://social.msdn.microsoft.com/Forums/en-US/winappswithnativecode/thread/0fa0695f-9828-46ac-985b-5ca15f3bee0a

“如果您的lib链接到符合Metro风格应用程序的C运行时,您将能够调用标准C函数,例如fopen。您可以针对App Cert Kit进行测试以确认。早于VC 2012的运行时将无效

您的应用仍将受到安全沙箱的约束,并且不会在其应用数据和包之外拥有访问目录。“