常见问题解答
TIP
提问前请务必认真阅读 学会提问 一文。
目录
一般性问题
“错误列表”与“输出”
Visual Studio 2022 中,有两个窗口均会显示程序编译中的错误。默认情况下我们会看到的是“错误列表”——一个比较美观漂亮的表格,分不同的颜色显示“错误”、“警告”和“消息”。在“错误列表”的下方,可以切换至“输出”标签页,它的内容是朴素的文本,如下图所示:

TIP
如果没有看到或不慎关闭了“输出”标签页,可以通过菜单栏 视图-输出 选项,或者快捷键 Ctrl+Alt+O 唤出。
值得注意的是,“输出”窗口会标识出错误所在的行数和列数,且双击这一行文字可以自动在程序正文中锁定相应行。
本课程要求,提问、作答作业时,均应该使用输出窗口,理由如下:
- “输出”是来自编译器的完整原始信息,可以最大限度地还原编译器的工作流程,有助于问题回答者去发现、定位你遇到的问题。部分操作错误,如未正确设置启动项、程序没有重新编译,也可以通过观察“输出”内容分辨。
- “错误列表”中会同时出现来自编译器与智能提示引擎(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]。这类警告不强制要求解决,也不会导致作业失分。
“应用程序控制策略已阻止此文件。恶意二进制信誉。”

程序被 Windows Defender 的实时防护误杀了。关闭实时防护,并新建项目后重试。
截屏
- QQ 截屏工具(快捷键:
Ctrl+Alt+A) - Windows 自带截屏工具(快捷键:
🪟+Shift+S)
截图通常会自动存入剪贴板,可以直接用 Ctrl+V 粘贴到聊天窗口或 Word/PPT 文档。
中文乱码
遇到程序输出的中文乱码,或者无法正确设置字符编码时,请检查 区域和语言设置。
pdf 压缩
上传 pdf 的时候提示文件过大怎么办?
有两种做法:
导出pdf的时候通过合适的选项减小生成的pdf大小,以 Microsoft PowerPoint 为例:

搜索“在线pdf压缩”,有许多免费工具都可以做到压缩 pdf 大小
exe 无法写入
LINK1168: 无法打开 xx.exe 进行写入
有两种可能:
- 上一次运行程序没有结束,应当关闭上次的运行窗口(少部分情况下窗口关了但后台进程仍在运行,此时需要在任务管理器中结束,或者重启计算机)
- 程序被杀毒软件误杀了,关闭杀毒软件
附注
这个警告是有道理的,但对学习输入错误处理之前的初学者无意义。 ↩︎