CLion手把手教你创建Windows项目

在这里插入图片描述

作为一个Jetbrains迷的我,下载了Jetbrains全家桶,我就想用CLion 编写 Windows 项目
前提:必须安装 Visual Studio 2022

  • New Project
    在这里插入图片描述

  • 选择 C++ Executable,取好项目名, 点击 Create
    在这里插入图片描述

  • 在 CMakeList.txt 中添加以下内容,目的是使CLion支持Windows编程和MFC 编程

if (WIN32)
    add_definitions(-D_WIN32_WINNT=0x0601)
endif ()

if (WIN32)
    set(CMAKE_MFC_FLAG 2)
    add_definitions(-D_AFXDLL)
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mwindows")
ENDIF ()

在这里插入图片描述

  • 在 main.cpp 编写以下内容
#include <windows.h>
// 窗口处理函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT msgID, WPARAM wparam, LPARAM lparam){
    return DefWindowProc(hWnd, msgID, wparam, lparam);
}
// 入口函数 
int CALLBACK WinMain(HINSTANCE hIns, HINSTANCE hPreIns, LPSTR lpCmdLine, int nCmdShow){
    // 注册窗口类
    WNDCLASS wndclass = {0};
    wndclass.cbClsExtra = 0;
    wndclass.cbWndExtra = 0;
    wndclass.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
    wndclass.hCursor = nullptr;
    wndclass.hIcon = nullptr;
    wndclass.hInstance = hIns;
    wndclass.lpfnWndProc = WndProc;
    wndclass.lpszClassName = "Main";
    wndclass.lpszMenuName = nullptr;
    wndclass.style = CS_HREDRAW | CS_VREDRAW;
    // 将以上所有赋值全部写入操作系统
    RegisterClass(&wndclass);
    // 在内存中创建窗口 
    HWND hwnd = CreateWindow("Main","window", WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, nullptr, nullptr, hIns, nullptr);
    // 显示窗口
    ShowWindow(hwnd, SW_SHOW);
    // 消息循环
    MSG msg = {nullptr};
    while (GetMessage(&msg, nullptr, 0, 0)){
        TranslateMessage(&msg);
        // 将消息交给窗口处理函数来处理 
        DispatchMessage(&msg);
    }
    return 0;
}

在这里插入图片描述

  • 右键点击 Reload CMake Project
    在这里插入图片描述
  • 运行 main 函数
    在这里插入图片描述

大功告成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/229894.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

期末速成数据库极简版【创建】(1)

目录 前言 【1】T-SQL语句创建数据库 【2】T-SQL语句删除数据库 【3】T-SQL语句创建表 完整性约束 数据类型 例子 【4】T-SQL语句修改表 【5】T-SQL语句删除表 关于数据库&#xff0c;在我们学习Linux网络编程后面会详细学习到&#xff0c;为了应付期末考试&#xff0…

解决删除文件后 WSL2 磁盘空间不释放的问题

查看 Linux distributions 打开 PowerShell 并执行如下命令&#xff1a; wsl -l -v 搜索并找到 ext4.vhdx 文件 我的 ext4.vhdx 文件如下&#xff1a; C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx 由于…

从初级测试工程师到高级测试岗进阶指南,一文带你不迷路...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 说到软件测试工程…

大一python题库及答案,大一python期末必考题

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;大一python题库及答案&#xff0c;大一python期末必考题&#xff0c;今天让我们一起来看看吧&#xff01; 本篇文章给大家谈谈大一python题库及答案&#xff0c;以及大一python期末必考题&#xff0c;希望对各位有所帮助…

NTP反射放大攻击

文章目录 什么是NTPNTP反射放大攻击解决方案搭建NTP服务器部署服务器端windows NTP命令行本机测试 部署客户端ntpdatechrony 实验Python利用脚本 什么是NTP 基于UDP协议的NTP&#xff08;网络时间协议&#xff09;&#xff1a;使网络中各个计算机时间同步的一种协议 用途&…

光伏电站全貌

光伏电站 简介 每一篇文章开篇我都会写一个内容简介&#xff0c;一来梳理自己的写作思路&#xff0c;二来方便读者整体了解文章写作意图和脉络。本篇是新能源方面的开篇之作&#xff0c;我选取了介绍光伏电站基础知识&#xff0c;首先我们要了解光伏电站基础分类&#xff0c;然…

OpenCL学习笔记(四)手动编译开发库(ubuntu+gcc+rk3588)

前言 笔者本次使用的是RK3588的开发板&#xff0c;内部烧写的是ubuntu20.04&#xff0c;gcc版本是9 本文档简单记录下编译的过程&#xff0c;有需要的小伙伴可以参考下 一、安装所需软件 1.安装git&#xff0c;教程比较多&#xff0c;不再重复 2.安装cmake&#xff0c;教程…

IntelliJ IDEA使用Eval Reset

文章目录 IntelliJ IDEA使用Eval Reset说明具体操作 IntelliJ IDEA使用Eval Reset 说明 操作系统&#xff1a;windows10 版本&#xff1a;2020.1 IntelliJ IDEA安装可查看&#xff1a;安装教程 具体操作 添加&#xff0c;输入网址 https://plugins.zhile.io然后搜索“IDE E…

Javaweb之 IDEA集成Maven的详细解析

03. IDEA集成Maven 我们要想在IDEA中使用Maven进行项目构建&#xff0c;就需要在IDEA中集成Maven 3.1 配置Maven环境 3.1.1 当前工程设置 1、选择 IDEA中 File > Settings > Build,Execution,Deployment > Build Tools > Maven 2、设置IDEA使用本地安装的Maven…

关于前端学习的思考-vertical-align的用法

先摆结论&#xff1a;vertical-align这里的top线&#xff0c;bottom线&#xff0c;middle线&#xff0c;baseline线是由最大宽度和最大高度的行内元素或行内块元素决定的。 按照惯例&#xff0c;先摆三个行内元素。 1、改变第一个盒子&#xff0c;vertical-align&#xff1a;to…

12v转48v升压电源芯片:参数、特点及应用领域

12v转48v升压电源芯片&#xff1a;参数、特点及应用领域 随着电子设备的日益普及&#xff0c;电源芯片的需求也在不断增长。今天我们将介绍一款具有广泛应用前景的升压电源芯片——12v转48v升压电源芯片。该芯片具有宽输入电压范围、高效率、固定工作频率等特点&#xff0c;适…

Navicat 技术指引 | 适用于 GaussDB 分布式的调试器

Navicat Premium&#xff08;16.3.3 Windows 版或以上&#xff09;正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结…

套接字应用程序

这章节是关于实现 lib_chan 库的 。 lib_chan 的代码在 TCP/IP 之上实现了一个完整的网络层&#xff0c;能够提供认证和Erlang 数据流功能。一旦理解了 lib_chan 的原理&#xff0c;就能量身定制我们自己的通信基础结构&#xff0c;并把它叠加在TCP/IP 之上了。 就lib_chan 本身…

浪潮信息KeyarchOS EDR 安全防护测评

背景 近几年服务器安全防护越来越受到企业的重视&#xff0c;企业在选购时不再仅仅看重成本&#xff0c;还更看重安全性&#xff0c;因为一旦数据泄露&#xff0c;被暴力破解&#xff0c;将对公司业务造成毁灭性打击。鉴于人们对服务器安全性的看重&#xff0c;本篇文章就来测…

Proteus仿真--160128LCD中文显示温度与时间

本文介绍基于160128LCD的中文温度与时间显示设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 本文基于51单片机实现160128LCD的中文温度与时间的现实&#xff0c;其中万年历芯片选用DS1302时钟芯片&#xff0c;温度传感器选用DS18B20温度传感器 仿真图如下 仿真…

Linux基础——进程初识(一)

1. 硬件 ①冯诺依曼体系 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系。其详细结构如下图所示 在这里有几点要说明 1. 这里的储存器实际上指的是内存 2. 输入设备与输出设备都属于外设 常见的输入设备…

Java-网络通信总结

文章目录 网络程序设计基础局域网与互联网 网络协议IP协议TCP/IP 协议端口域套接字 TCP 程序InterAddress 类ServerSocket 类 UDP 程序DatagramPacket 类DatagramSocket 类 网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。Java 已经将网络程序所需要的元素…

三防平板|手持终端PDA|8寸/10寸工业三防平板电脑主板方案定制

近年来&#xff0c;随着科技的快速发展&#xff0c;三防平板成为了各行各业中不可或缺的工具。三防平板采用IP67级别的防护设计&#xff0c;通过了多项测试标准&#xff0c;如国标和美标&#xff0c;具备防水、防摔、防尘、防撞、防震、防跌落以及防盐雾等多重防护功能。因此&a…

红队系列-内网横向

内网横向 渗透测试-内网横向MS-17010利用方法总结原理介绍漏洞利用MSFLadon 渗透测试-从公有云到内网漫游RCE-反序列化-frp0x01 前言0x02 前期打点0x03 想办法打内网0x04对上面的IP进行渗透0x05 愉快的内网漫游 windows凭据窃取MimikatzProcdumpGet-PassHashes.ps1 Windows远程…

Python开发运维:Python常见异常类型

目录 一、理论 1.异常 一、理论 1.异常 &#xff08;1&#xff09;概念 异常是程序因为某种原因无法正常工作了&#xff0c;比如缩进错误、缺少软件包、环境 错误、连接超时等都会引发异常。 一个健壮的程序应该把所能预知的异常都应做相应的处理&#xff0c;保障程序长期运…