C++编程恶搞:改变控制台显示模式

需积分: 50 52 下载量 55 浏览量 更新于2024-09-16 2 收藏 2KB TXT 举报
"C++源代码,用于恶搞,通过改变控制台显示模式和输出特定字符序列来实现趣味效果。" 这段C++代码旨在创建一个小型的恶搞程序,它利用Windows API来更改控制台的显示模式,并输出一些有趣的字符序列。程序的核心在于使用了动态链接库(DLL)的方法,调用了`kernel32.dll`中的`GetConsoleDisplayMode`和`SetConsoleDisplayMode`函数,这两个函数允许程序获取和设置控制台的显示模式。 首先,代码引入了必要的头文件`<windows.h>`和`<iostream>`,并使用了`using namespace std;`来简化输出操作。`main`函数是程序的入口点。 接着,定义了两个函数指针类型`PROCGETCONSOLEDISPLAYMODE`和`PROCSETCONSOLEDISPLAYMODE`,分别对应`GetConsoleDisplayMode`和`SetConsoleDisplayMode`函数的原型。然后,程序声明了两个变量`GetConsoleDisplayMode`和`SetConsoleDisplayMode`,用以存储这两个函数的地址。 通过`GetModuleHandle`函数获取`kernel32.dll`的句柄,如果获取失败,程序将返回0。之后,使用`GetProcAddress`函数从`kernel32.dll`中获取`GetConsoleDisplayMode`和`SetConsoleDisplayMode`函数的地址,同样,如果找不到函数地址,程序也会返回0。 接下来,定义了两个`DWORD`类型的变量`dwNewMode`和`dwOldMode`,用于设置新的显示模式和保存旧的显示模式。`hOut`变量存储标准输出句柄,即控制台的输出设备。 程序尝试使用`SetConsoleDisplayMode`函数设置一个新的显示模式(在这个例子中是1),并且通过传入`dwOldMode`参数来获取原来的显示模式。然后,调用`system("color17")`改变控制台的颜色方案。 在循环中,程序不断清屏(`system("cls")`),并输出一系列的字符行,形成一个有趣的图形。这个图形会随着循环次数的增加而变化。当循环不等于100时,程序会在输出的图形后面加上更多的空格,这样在每次迭代时,图形的位置都会有所移动,造成一种动态的效果。 这段代码展示了如何在C++中利用Windows API进行控制台的交互,以及如何创建简单的动态图形效果。它虽然具有恶搞性质,但也提供了一个学习如何与操作系统底层交互的实例。