VC++学习(1)——环境准备,参考文档等,初步入门VC++

在这里插入图片描述

目录

  • 引出
  • 环境准备,参考文档
  • 第一讲 初步入门
    • 键盘按下的消息
    • 鼠标左键按下
    • 报错
    • 源码
    • 新建一个工程
  • 总结

引出

VC++学习(1)——环境准备,参考文档等,初步入门VC++

C++是一门编程语言,他的语法标准和语言特性是全球统一的

VC++是微软在C++语言基础上加入了自己公司扩展的一些东西

VC++是基于微软开发的编译器系统(例如Visual C++ 6.0编译系统,visual studio)和windows操作系统,也就是说你离开微软的编译环境是没有办法进行VC++开发的

VC++可以简单的视为 :

C++语言+微软扩展的语法规则+微软扩展的功能特性+微软自己开发的编译环境+windows操作系统 的一个混杂的复合体


环境准备,参考文档

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安装好的VC++

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

msdn参考文档

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

选择SDK

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

教材对应的视频和源代码

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

flash文件打不开问题

https://github.com/Mzying2001/CefFlashBrowser/releases

https://www.bilibili.com/list/ml847383748?oid=31626251&bvid=BV1AW411y7ad&p=3

第一讲 初步入门

比如加入一个程序变量

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

设置一个断点,鼠标右键,加入断点

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

采用调试运行F5快捷键,或者点击图示图标

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

程序运行的时候,接收到了命令行参数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击图示按钮,可以停止程序调试

在这里插入图片描述

程序的图标

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

去掉最小化窗口的按钮

WS_OVERLAPPEDWINDOW & ~WS_MINIMIZEBOX

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关于窗体的位置

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

键盘按下的消息

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

鼠标左键按下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

报错

LINK : fatal error LNK1168: cannot open Debug/WinMain.exe for writing

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

源码

#include <windows.h>
#include <stdio.h>LRESULT CALLBACK WinSunProc(HWND hwnd,      // handle to windowUINT uMsg,      // message identifierWPARAM wParam,  // first message parameterLPARAM lParam   // second message parameter
);int WINAPI WinMain(HINSTANCE hInstance,      // handle to current instanceHINSTANCE hPrevInstance,  // handle to previous instanceLPSTR lpCmdLine,          // command lineint nCmdShow              // show state
)
{// 1.设置了一个窗口,定义窗口的一些信息WNDCLASS wndcls; // 窗口实例wndcls.cbClsExtra=0; // 窗口附加内存空间,通常设置为0wndcls.cbWndExtra=0; // 通常用不上,设置为0即可// 进行强制类型转换wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); // 窗口的背景颜色wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); // 光标句柄,这里光标就是十字 crosswndcls.hIcon=LoadIcon(NULL,IDI_ERROR); // 图标句柄,这里就是一个errorwndcls.hInstance=hInstance; // 代表当前应用程序的实例号wndcls.lpfnWndProc=WinSunProc; // 回调函数wndcls.lpszClassName="sunxin2006"; // 类的名字wndcls.lpszMenuName=NULL; // 没有菜单wndcls.style=CS_HREDRAW | CS_VREDRAW; // 水平和垂直坐标变化,窗口重画RegisterClass(&wndcls); // 注册窗口类,把窗口类的指针给他HWND hwnd; // 窗口的句柄// 注册的类名,WS_OVERLAPPEDWINDOW同时有了最大化,最小化按钮等hwnd=CreateWindow("sunxin2006","跟着大佬学习VC++",WS_OVERLAPPEDWINDOW & ~WS_MINIMIZEBOX /*& ~WS_MINIMIZEBOX */,0,0,600,400,NULL,NULL,hInstance,NULL);// 显示窗口,正常显示normalShowWindow(hwnd,SW_SHOWNORMAL);UpdateWindow(hwnd);// 消息队列MSG msg;while(GetMessage(&msg,NULL,0,0)) // 0表示所有信息都感兴趣{// 按键的按下和抬起,转化成WM_CHAR,放到消息队列中TranslateMessage(&msg);// 将消息路由给操作系统,操作系统给wndcls.lpfnWndProc=WinSunProc; // 回调函数进行处理DispatchMessage(&msg);}return msg.wParam;
}// 回调函数
LRESULT CALLBACK WinSunProc(HWND hwnd,      // handle to windowUINT uMsg,      // message identifierWPARAM wParam,  // first message parameter 都是整数LPARAM lParam   // second message parameter
)
{switch(uMsg){case WM_CHAR: // 用户按下了按键char szChar[20];// sprintf,格式化文本放到字符数组中sprintf(szChar,"char code is %d",wParam);MessageBox(hwnd,szChar,"char",MB_YESNO);break;case WM_LBUTTONDOWN:MessageBox(hwnd,"mouse clicked","message",0);HDC hdc;// 在哪里画图hdc=GetDC(hwnd);// 参数:在哪里,位置,输入文字,文字长度TextOut(hdc,0,50,"程序员之家",strlen("程序员之家"));// 释放DC,ReleaseDC(hwnd,hdc);break;// 窗口大小发生变化case WM_PAINT:HDC hDC;PAINTSTRUCT ps;// BeginPaint 和 EndPaint 是一对,只能用在WM_PAINT中hDC=BeginPaint(hwnd,&ps);TextOut(hDC,0,0,"http://www.sunxin.org",strlen("http://www.sunxin.org"));EndPaint(hwnd,&ps);break;// 窗口关闭的时候的消息case WM_CLOSE:if(IDYES==MessageBox(hwnd,"是否真的结束?","message",MB_YESNO)){DestroyWindow(hwnd);}break;case WM_DESTROY:PostQuitMessage(0);break;default:// 对其不感兴趣的进行缺省处理return DefWindowProc(hwnd,uMsg,wParam,lParam);}return 0;
}

新建一个工程

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


总结

VC++学习(1)——环境准备,参考文档等,初步入门VC++

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机系统概述习题

选择题 电子计算机问世至今&#xff0c;新型计算机不断推陈出新&#xff0c;不管怎么更新&#xff0c;依然具有“存储程序”的特点&#xff0c;最早提出这种概念的是(B) A. 巴贝奇 B. 冯*诺伊曼 C. 帕斯卡 D. 贝尔 B下列描述中___是正确的。 A. 控制器能理解&#xff0c;解释…

中国主要城市房价指数数据集(2011-2024)

数据来源&#xff1a;东方财富网 时间跨度&#xff1a;2011年1月 - 2024年4月 数据范围&#xff1a;中国主要城市 包含指标&#xff1a; 日期、城市 新建商品住宅价格指数-同比 新建商品住宅价格指数-环比 新建商品住宅价格指数-定基 二手住宅价格指数-环比 二手住宅价格指…

Visual Studio 调试及快捷键

文章目录 原文连接环境一、调试器的基本使用1、更改执行流2、快速执行某一条代码断点设置条件断点查看内存信息查看调用堆栈查看寄存器信息设置监视断点调试二、快捷键一、窗口快捷键二、查找相关快捷键三、代码快捷键原文连接 【教程】visual studio debug 技巧总结 环境 一…

OpenCASCADE Draw模块TKDraw项目问题修改

1.问题 在调试Draw模块代码时&#xff0c;出现一个小问题&#xff0c;导致无法正常运行 如下&#xff1a; 2.代码跟踪 通过代码跟踪发现时一个数组越界问题&#xff0c;在此处添加了判断处理&#xff0c;程序可以正常调试

Golang使用HTTP框架zdpgo_resty实现文件下载

核心代码 代码解析&#xff1a; client.SetOutputDirectory("Downloads") 设置下载目录client.R().SetOutput("test.go").Get("http://127.0.0.1:3333/download 指定下载文件名并进行下载 // 设置输出目录路径&#xff0c;如果目录不存在&#xff…

数据结构顺序表实现通讯录

目录 1. 前言&#xff1a; 2.通讯录项目的创建 3. 通讯录的实现 3.1 通讯录的初始化 3.2 通讯录的销毁 3.3 通讯录添加数据 3.4 通讯录查找数据 3.5 通讯录展示数据 3.6 通讯录删除数据 3.7 通讯录修改数据 4. 通讯录完整代码 4.1 test.c 4.2 SeqList.h 4.3 SeqLis…

PostgreSQL学习笔记

PostgreSQL 基本概念和架构 PostgreSQL 是一个功能强大的开源对象关系数据库管理系统&#xff08;ORDBMS&#xff09;&#xff0c;其设计目标是遵循 SQL 标准&#xff0c;并提供丰富的功能&#xff0c;如复杂查询、外键、触发器、视图和事务处理。以下是 PostgreSQL 的基本概念…

数据结构(Java实现):ArrayList

目录 1.ArrayList简介2.ArrayList构造方法分析3.ArrayList的add方法以及扩容机制4.ArrayList常用方法5.ArrayList遍历6.ArrayList的缺陷 1.ArrayList简介 在集合框架中&#xff0c;ArrayList是一个普通的类&#xff0c;实现了List接口&#xff0c;具体框架图如下&#xff1a; …

编写一个llvm编译器插件,完成在store汇编指令前对内存合法性的check。

dds(iceoryx、fastdds等)中间件采用了共享内存&#xff0c;如果app内存越界将共享内存踩踏坏了&#xff0c;将会形成灾难。本插件可以检测到app是否在写共享内存&#xff0c;如果是&#xff0c;我们可以让app assert。从而提高dds的稳定性 插件效果&#xff1a; 插件源码&…

话题:如何让大模型变得更聪明?

随着人工智能&#xff08;AI&#xff09;技术的迅速发展&#xff0c;大模型&#xff08;如GPT-4、BERT、Transformer等&#xff09;在自然语言处理、图像识别和语音识别等领域取得了显著成果。然而&#xff0c;如何让大模型变得更聪明&#xff0c;进一步提升其性能和应用效果&a…

Netty: Netty中的组件

文章目录 一、EventLoop1、EventLoop2、EventLoopGroup&#xff08;1&#xff09;处理普通时间和定时任务&#xff08;2&#xff09;处理IO任务 二、Channel三、Future&Promise四、Handler&Pipeline五、ByteBuf 一、EventLoop 1、EventLoop EventLoop本质是一个单线程…

Jetbrain | IDEA的启动logo替换成可爱的vtuber-logo

看了这个&#xff0c;好可爱 【上Github热榜了&#xff01;当编程语言的Logo变得可爱起来~】 又看了这个 光速整活&#xff0c;强啊 看到很多人整IDEA的logo包括我自己&#xff0c;都不是特别方便的搞&#xff0c;我就直接把文件放在绑定资源里直接下吧 然后直接找到本体的安…

ios swift5 codable字典转模型,第三方库SmartCodable

文章目录 1.用第三方库SmartCodable, github地址2.使用示例 1.用第三方库SmartCodable, github地址 SmartCodable - github 2.使用示例 import Foundation import SmartCodablestruct CommonModel: SmartCodable {var message: String ""var success: Bool fals…

【深度学习】与【PyTorch实战】

目录 一、深度学习基础 1.1 神经网络简介 1.2 激活函数 1.3 损失函数 1.4 优化算法 二、PyTorch基础 2.1 PyTorch简介 2.2 张量操作 2.3 构建神经网络 2.4训练模型 2.5 模型评估 三、PyTorch实战 3.1 数据加载与预处理 3.2 模型定义与训练 3.3 模型评估与调优 3…

成都青年AI人才崭露头角,知了汇智科技助力孵化营大放异彩

5月18日-19日&#xff0c;为期两天的成都国际商贸城青年&#xff08;大学生&#xff09;AI应用孵化营活动在热烈的氛围中圆满落幕。本次活动由成都国际商贸城、成都成商数字科技有限公司、成都知了汇智科技有限公司及成都电商职教集团联合举办&#xff0c;旨在为青年&#xff0…

丢失api-ms-win-crt-runtime-l1-1-0.dll的多种解决方法分析,教你简单的一键修复

在使用Windows操作系统时&#xff0c;用户可能会遇到一个涉及丢失 ​api-ms-win-crt-runtime-l1-1-0.dll文件的警告&#xff0c;这可能导致某些程序无法正常运行。该DLL文件属于Microsoft Visual C Redistributable软件包的一部分&#xff0c;这个软件包为多个应用提供运行时支…

Mybatis-plus的两种分页方案

Mybatis-plus的两种分页方案 底层的逻辑是写出最终执行的sql或者selectPage方法等&#xff0c;中间需要配置相应的page拦截器。 注意&#xff1a;如没有配置拦截器&#xff0c;直接执行就会存在total的值为0&#xff0c;此方法无效。 1. 基于MP的IPage接口实现 使用步骤&am…

深度学习-Softmax回归+损失函数+图像分类数据集

目录 Softmax回归回归 VS 分类Kaggle上的分类问题 从回归到多类分类回归分类从回归到多类分类-均方损失从回归到多类分类-无校验比例从回归到多类分类-校验比例 Softmax和交叉熵损失总结损失函数均方损失绝对值损失函数鲁棒损失 图像分类数据集通过框架中内置函数将FashionMNIS…

RabbitMQ---交换机-Fanout-Direct

Publisher&#xff1a;生产者&#xff0c;不再发送消息到队列中&#xff0c;而是发给交换机Exchange&#xff1a;交换机&#xff0c;一方面&#xff0c;接收生产者发送的消息。另一方面&#xff0c;知道如何处理消息&#xff0c;例如递交给某个特别队列、递交给所有队列、或是将…

删除实例分割中的特定标签

用labelme软件对图像进行实例分割或语义分割标注后会得到json文件&#xff0c;如果想要删除某个特定标签&#xff0c;可以使用如下代码&#xff0c;完整代码下载地址&#xff1a;代码地址 import json import os# 要处理的json文件夹路径 folder_path H:/json # 需要删除的标…