Skip to content

常见问题解答

TIP

提问前请务必认真阅读 学会提问 一文。

目录

一般性问题

“错误列表”与“输出”

Visual Studio 2022 中,有两个窗口均会显示程序编译中的错误。默认情况下我们会看到的是“错误列表”——一个比较美观漂亮的表格,分不同的颜色显示“错误”、“警告”和“消息”。在“错误列表”的下方,可以切换至“输出”标签页,它的内容是朴素的文本,如下图所示:

输出窗口

TIP

如果没有看到或不慎关闭了“输出”标签页,可以通过菜单栏 视图-输出 选项,或者快捷键 Ctrl+Alt+O 唤出。

值得注意的是,“输出”窗口会标识出错误所在的行数和列数,且双击这一行文字可以自动在程序正文中锁定相应行。

本课程要求,提问、作答作业时,均应该使用输出窗口,理由如下:

  1. “输出”是来自编译器的完整原始信息,可以最大限度地还原编译器的工作流程,有助于问题回答者去发现、定位你遇到的问题。部分操作错误,如未正确设置启动项、程序没有重新编译,也可以通过观察“输出”内容分辨。
  2. “错误列表”中会同时出现来自编译器与智能提示引擎(IntelliSence)的信息。智能提示引擎给出的部分 warning 过于敏感,本课程不强制要求解决。 另外,有时智能提示引擎会出一些小 bug,也会导致无效的报错信息污染“错误列表”。
“智能提示”与“输出”存在差异的例子
c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    int a, b;
    // (来自 IntelliSence 的警告)返回值被忽略: “scanf”。
    scanf("%d%d", &a, &b);
    printf("%d\n", a + b);
    return 0;
}

这段简单的 C 程序可以正确编译、运行,在“输出”窗口中不会有任何报错。但“错误列表”窗口会出现一个“返回值被忽略”的警告[1]。这类警告不强制要求解决,也不会导致作业失分

“应用程序控制策略已阻止此文件。恶意二进制信誉。”

alt text

程序被 Windows Defender 的实时防护误杀了。关闭实时防护,并新建项目后重试。

截屏

  • QQ 截屏工具(快捷键:Ctrl+Alt+A
  • Windows 自带截屏工具(快捷键:🪟+Shift+S

截图通常会自动存入剪贴板,可以直接用 Ctrl+V 粘贴到聊天窗口或 Word/PPT 文档。

中文乱码

遇到程序输出的中文乱码,或者无法正确设置字符编码时,请检查 区域和语言设置

pdf 压缩

上传 pdf 的时候提示文件过大怎么办?

有两种做法:

  1. 导出pdf的时候通过合适的选项减小生成的pdf大小,以 Microsoft PowerPoint 为例:

    minimized pdf

  2. 搜索“在线pdf压缩”,有许多免费工具都可以做到压缩 pdf 大小

exe 无法写入

LINK1168: 无法打开 xx.exe 进行写入

有两种可能:

  1. 上一次运行程序没有结束,应当关闭上次的运行窗口(少部分情况下窗口关了但后台进程仍在运行,此时需要在任务管理器中结束,或者重启计算机)
  2. 程序被杀毒软件误杀了,关闭杀毒软件

附注

  1. 这个警告是有道理的,但对学习输入错误处理之前的初学者无意义。 ↩︎