我们的产品包含在我们发送给客户的DLL中。
在提供Windows8版本时,我注意到我不能静态地链接到CRT,否则使用我们的DLL的应用程序将无法通过认证。
我找不到任何文件提到这一点。有没有人知道为什么这是不可能的,或者如何让它发生?
我们的产品只使用malloc/free和数学函数。静态地链接到CRT会简单得多,而不是要求每个链接到我们的应用程序都安装适当的vc redist。(还有,为什么不通过Windows Update渠道部署风投人员?)
发布于 2013-01-08 06:59:14
Windows应用商店应用只能使用VS 2012和当前的CRT构建。关键点是,Windows应用商店应用程序不支持CRT的静态链接。
以下是有关CRT的更多信息:
Windows应用商店应用、Windows运行时和C运行时http://msdn.microsoft.com/en-us/library/hh972425.aspx
下面是不支持的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 style应用程序兼容的C运行时,您将能够调用标准C函数,如fopen。您可以针对app Cert Kit进行测试以进行确认。比VC 2012旧的运行时将不起作用。
你的应用程序仍将受到安全沙箱的限制,并且将无法访问其应用程序数据和包之外的目录。“
https://stackoverflow.com/questions/14201166
复制相似问题