我们的产品包含发送给客户的 DLL。
在提供 Windows 8 版本时,我注意到我无法静态链接 CRT,否则使用我们的 DLL 的应用程序无法通过认证。
我找不到任何提到这一点的文件。有人知道为什么它不可能或如何实现吗?
我们的产品仅使用 malloc/free 和数学函数。静态链接到 CRT 会简单得多,而不是要求链接到我们的每个应用程序都安装正确的 vc redist。(还有 ffs 为什么不通过 Windows 更新渠道部署 vc redists?)
我们的产品包含发送给客户的 DLL。
在提供 Windows 8 版本时,我注意到我无法静态链接 CRT,否则使用我们的 DLL 的应用程序无法通过认证。
我找不到任何提到这一点的文件。有人知道为什么它不可能或如何实现吗?
我们的产品仅使用 malloc/free 和数学函数。静态链接到 CRT 会简单得多,而不是要求链接到我们的每个应用程序都安装正确的 vc redist。(还有 ffs 为什么不通过 Windows 更新渠道部署 vc redists?)
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
罗布·卡普兰在这里写道:
“如果您的 lib 链接到符合 Metro 风格应用程序的 C 运行时,您将能够调用标准 C 函数,例如 fopen。您可以针对 App Cert Kit 进行测试以确认。早于 VC 2012 的运行时将不起作用。
您的应用仍将受制于安全沙箱,并且无法访问其应用数据和包之外的目录。”