0

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

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

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

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

4

1 回答 1

1

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

罗布·卡普兰在这里写道:

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 的运行时将不起作用。

您的应用仍将受制于安全沙箱,并且无法访问其应用数据和包之外的目录。”

于 2013-01-07T22:59:14.323 回答