C++编程恶搞:改变控制台显示模式
需积分: 50 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进行控制台的交互,以及如何创建简单的动态图形效果。它虽然具有恶搞性质,但也提供了一个学习如何与操作系统底层交互的实例。
1739 浏览量
389 浏览量
393 浏览量
924 浏览量
352 浏览量
2410 浏览量
bcypxl
- 粉丝: 29
- 资源: 5
最新资源
- matlab代码sqrt-SVMHeavy:创建SVM和东西,是因为上传在旧存储库上不起作用(旧版本由于某些原因而持续存在)
- numerical_mathematics
- 易语言枚举并预览系统字体
- iOS 13.2真机测试包
- BLDCM,svm算法在matlab源码,matlab源码网站
- TreatLife-HomeKit:TreatLife DS0X调光器开关的开源固件,可用于本机HomeKit
- creddit:[Android应用]使用Nativescript和VueJS制作的Android Reddit客户端
- matlab代码sqrt-MultiturnCoilDesigningTool:设计用于低频磁力计的线圈
- zaperin-hub:扎珀林模块的资料库
- (w3cschool.cc).rar
- dotfiles::memo:自己设置的dotfiles
- springboot-demo.zip
- Cekklik:Aplikasi Cek细节barang
- chainpack-rs:ChainPack RPC的Rust实现
- gei,Matlab输入HDB3码输出源码,matlab源码怎么用
- matlab代码sqrt-Hugo-Diaz-N.github.io:临时网站