当我们分发Windows原生应用程序时,我们是否仍需要担心vcredist.exe?Win-7中是否有任何捆绑的内容?
如果没有,那么为什么这些库不通过Windows更新等方式发送给用户,而是让我们负担着必须工作的另一件事情呢?(好吧,这可能听起来很争论,但我真的很想知道为什么这些库不是默认安装/更新在Windows机器上)
是的,你需要这样做。否则,当你尝试运行程序时,它会崩溃得非常惊人。许多用户并没有运行Win7,即使他们运行了Win7,也无法确保他们已经安装了运行时库,除非你在安装程序中包含它。
或者,你可以链接到运行时库的静态构建版本,避免烦恼地处理C运行时可再发行版。
在使用GCC编译时,我总是链接到MSVCRT.DLL,这个文件在XP及以上版本中始终存在。
这是对Larry Osterman于4月14日23:29发表的评论的回应:
你说:
msvcrt.dll不是C运行时库。它是Windows的内部组件,不应该被第三方应用程序使用。你会注意到,在MSDN上找不到使用此DLL的任何参考资料。曾经有一段时间第三方应用程序使用了它,但已经有大约10年没有这种情况了。- Larry Osterman Apr 14 at 23:29
这似乎与基于访问msvcrt.dll的mingw系统的整个前提相矛盾,而你的评论使我更好地理解了mingw的工作原理。事实证明,mingw仍然使用1998年发布的msvcrt.dll!请参见此链接:
谢谢,
Todd