1

我在 Windows 7 上使用 Visual Studio 6 和 vc++,并编写了一个简单的 helloworld 程序,该程序默认由 VS6 创建。但由于 printf 它给出了以下错误:

    // testapp.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

int main(int argc, char* argv[])
{
    printf("Hello World!\n");
    return 0;
}

错误 :

--------------------Configuration: testapp - Win32 Debug--------------------
Compiling...
StdAfx.cpp
Compiling...
testapp.cpp
D:\PROJECTS\FATT\testapp\testapp.cpp(8) : fatal error C1001: INTERNAL COMPILER ERROR
  (compiler file 'E:\8783\vc98\p2\src\P2\main.c', line 494)
    Please choose the Technical Support command on the Visual C++
    Help menu, or open the Technical Support help file for more information
Error executing cl.exe.

testapp.exe - 1 error(s), 0 warning(s)

为什么 printf 和 sprintf 不起作用?

4

2 回答 2

1

如果你真的在没有应用任何服务包的情况下运行 VC++ 6,那么它可能是这样的:修复:当你使用不带文件名的 /ZI 和 /Yc 命令行开关进行编译时,你会收到“致命错误 C1001”错误消息视觉 C++ 6.0

当您在 Microsoft Visual C++ 中使用不带文件名的 /ZI 和 /Yc 命令行开关进行编译时,您可能会收到以下错误消息:致命错误 C1001: INTERNAL COMPILER ERROR (compiler file 'E:\8168\vc98\ p2\src\P2\main.c',第 494 行)

地位

此错误已在 Visual Studio 6.0 Service Pack 3 中得到纠正。

解决方法

若要解决此问题,请使用下列方法之一:

  • 使用 /Zi 命令行开关而不是 /ZI 命令行开关进行编译。

  • 使用 /Yc 命令行开关提供文件名。例如,使用以下语法:/Yc"FileName"

于 2016-07-22T16:14:05.247 回答
0

我的第一个想法是可能需要 VS6 SP6。(上一个答案)。大型项目将失败(包含大量文件)存在一个 CL.exe 崩溃,该问题也在 SP3 中得到修复。您不需要在安装 Win7 和更新版本时安装所有 VS6。有一个包需要跳过,ADO/RDS 和 OLE Providers。如果您尝试安装这些组件,VS6.0 安装将立即挂起,并且稍后 VS6 SP6 将无法正确安装。

稍后成功安装 SP6 所需的 VS6 安装自定义的屏幕截图

我在 2015 年在 Amazon Cloud 中做了很多工作,看看 VS6.0 是否会在 Win2012 中安装,并且确实如此。我假设 Win7/8/10 会类似。

我们去年(2016 年)在 VS6.0 中还发现了一个 /GF(字符串池)错误,如果您在运行时搜索字符串,它可能会真正搞砸。两个不同的字符串名称可以合并到一个字符串中,因此在运行时搜索字符串列表永远不会找到两者之一。/GF 由 /ZI (IIRC) 隐含,因此更改为 /Zi。(我可能已经切换了)。建议是尽快从 VS6.0 -> ON。我知道这可能是不可能的:(。

于 2017-06-06T18:34:23.217 回答