我有VS 2008,我希望我的应用程序与Windows 98一起使用,而无需包括MSVCR90.dll .. Win98随附MSVCR60,那么我该如何告诉MSVC执行此操作?我唯一的选择Visual Studio 6?

谢谢

*我也想避免静态链接msvcr

有帮助吗?

解决方案

您不能告诉Visual Studio使用较早的运行时库。即使您可以将其与旧库进行编译,该应用程序本身也不会正确运行,因为编译器将插入其期望在库中的功能的调用,情况并非如此。

我也想避免静态链接msvcr
为什么?这似乎是解决此问题的完全有效解决方案。当然,您为其支付了约100KB的代码大小,但是值得在被迫使用Visual Studio 6的Buggy和不合格的编译器。

您还可以包括MSVC ++重新分布可包含正确的DLL,并且不需要标准库的静态链接。

其他提示

如果要定位Windows 98,您的选项是:

  • 首先,Visual Studio 2005的最大版本。2008及向上邮票在EXE标头中的最小OS VER -Windows 98将根本不会加载VS 2008生产的二进制文件。

至于CRT分布:

  • 使用您的应用程序分发新运行时。如果您的应用程序具有许多DLL,我更喜欢这种方法,因为静态链接会使整体链接大于所需的大量。另外,如果您至少在一个过程中所有模块之间共享所有模块之间的C ++,那么使用DLL的C ++也有很多限制。

如果您不是C ++功能(例如异常)和STL的“沉重”用户,则您可能无法完全链接任何CRT。否则您的选择是:

  1. 使用MINGW等非MS编译器。 MingW使用最新的GCC,因此您可以获得C99和C ++ 98,C ++ 03,TR1等。它使用MSVCRT.DLL。代码:: Blocs是一个“确定” IDE,如果您从未使用过Visual Sutdio和/或对头部进行了太多的打击。
  2. 下载Windows DDK。您需要从命令行构建,并使用Make Files弄脏,但是它免费,并且DDK使用VS2005编译器和链接器,但专门设置了用于针对MSVCRT.DLL的链接,而不是MSVCR80.DLL。它被认为太冒险了,要求设备驱动程序与可能不存在的运行时链接。
  3. Visual Studio 6作为最后的后备选项。 C ++ 98的可怕支持可怕。至少您会得到一个漂亮的IDE,现在应该快速快速计算机以来的速度/容量增加了一倍。

低架长Microsoft Visual Studio C运行时 是一个静态可链接的C运行时,可最大程度地使用已与Windows分发的可用DLL。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top