一. 内容简介
c++雪花屏(vsCode+cmake+mingw+ninja),代码来自于赵老师,我改了一下编译环境
【B站最好的OpenGL图形学-全家桶(四门课程)系统介绍】 https://www.bilibili.com/video/BV1AE421P7kK/?share_source=copy_web\&vd_source=7b377d4a833a67013df5f95f32b390f8
代码以及安装包链接:
通过网盘分享的文件:c++雪花屏(vsCode+cmake+mingw+ninja)
链接: https://pan.baidu.com/s/1R2B6PTHQmqH9MFkNRLEODA?pwd=8888 提取码: 8888
--来自百度网盘超级会员v8的分享
二. 软件环境
2.1 vsCode
2.2 cmake
2.3 mingw
2.4 ninja
三.主要流程
3.1 软件安装
3.2 软件介绍
3.3 软件运行
3.4 问题处理
四.具体步骤
4.1 软件安装
CMake
就随便下载安装就可以了(网盘里面也有),插件如下(日积月累装的,具体都是什么作用不清楚):

json
Code Runner
Better C++ Syntax
C/C++
C/C++ Extension Pack
C/C++ Themes
Makefile Tools
cmake
用的是cmake-4.1.1-windows-x86_64.msi,直接安装网盘的安装包,
mingw,ninja,qt6
都是用qt安装的,qt安装的6.8,ninja只有一个,mingw和qt6.8匹配就行,直接安装网盘的安装包,
json
// cmd(管理员运行),进入到对应的文件的,执行下面的,安装就行
qt-online-installer-windows-x64-online --mirror https://mirrors.ustc.edu.cn/qtproject
// 这个用于后面增加或者去掉组件
MaintenanceTool.exe --mirror https://mirror.nju.edu.cn/qt
4.2 软件介绍
先讲一下改的地方,然后介绍一下软件的实现思路,
c++
// 这个代码其实只在msvc有效,就相当于在编译命令后面添加了这些命令,mingw没办法用
#pragma comment(linker, "/subsystem:console /entry:wWinMainCRTStartup" )
// mingw在cmakelist中添加这个就好了
target_link_options(softRenderer PRIVATE -municode)
软件思路
c++
// 创建窗体,
// mhDC为显示的dc,mCanvasDC为空的dc,mhBmp和mCanvasDC绑定,作为画板,mCanvasBuffer是指向画板的指针
app->initApplication(hInstance,800, 600)
// mFrameBuffer就是和mCanvasBuffer绑定了
// 然后使用通过mFrameBuffer去修改mhBmp里面的颜色,可以完成整个画板颜色的替换
uint32_t pixelPos = y * mFrameBuffer->mWidth + x; // �����һ�м���x��ƫ����
mFrameBuffer->mColorBuffer[pixelPos] = color;
// 然后把mCanvasDC的的数据拷贝mhDC,就完成了页面的刷新
BitBlt(mhDC, 0, 0, mWidth, mHeight, mCanvasDC, 0, 0, SRCCOPY);
4.3 软件运行
下载代码,使用vscode打开,里面的CMakePresets.json,tasks.json,launch.json,c_cpp_properties.json都是配置好的,需要按自己的的配置改一下。

CMakePresets.json
json
// CMakePresets.json
// 按着自己的位置给,CMAKE_C_COMPILER,CMAKE_CXX_COMPILER,CMAKE_MAKE_PROGRAM,Qt6_DIR位置都替换一下
{
"version": 3,
"configurePresets": [
{
"name": "debug_Ninja",
"displayName": "Debug Build",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_C_COMPILER": "D:/Qt/Tools/mingw1310_64/bin/gcc.exe",
"CMAKE_CXX_COMPILER": "D:/Qt/Tools/mingw1310_64/bin/g++.exe",
"CMAKE_MAKE_PROGRAM": "D:/Qt/Tools/Ninja/ninja.exe",
"SHOW_CONSOLE":true,
"Qt6_DIR": "D:/Qt/6.8.3/mingw_64/lib/cmake/Qt6"
}
},
{
"name": "release_Ninja",
"displayName": "Release Build",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/release",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_C_COMPILER": "D:/Qt/Tools/mingw1310_64/bin/gcc.exe",
"CMAKE_CXX_COMPILER": "D:/Qt/Tools/mingw1310_64/bin/g++.exe",
"CMAKE_MAKE_PROGRAM": "D:/Qt/Tools/Ninja/ninja.exe",
"SHOW_CONSOLE":false,
"Qt6_DIR": "D:/Qt/6.8.3/mingw_64/lib/cmake/Qt6"
}
}
]
}
对应的文件调整完了以后,
先构建,构建进去CMakeLists.txt以后,ctrl+s,会自动构建,如果提示不知道怎么构建,ctrl+shift+p,选一下构建配置即可,然后ctrl+shift+b运行就行,调试的话可以参考我之前的博客
vsCode+cmake+mingw+ninja+qt6环境搭建(包含例子代码)及问题处理
https://blog.csdn.net/qq_45179361/article/details/155495028

