c++
前言
这里我们只做c++部分的总结, 还有一些和c语言不同的地方
版本
发布时间
通称
备注
2020
C++20, C++2a
ISO/IEC 14882:2020
2017
C++17
第五个C++标准
2017
coroutines TS
协程库扩展
2017
ranges TS
提供范围机制
2017
library fundamentals TS
标准库扩展
2016
concurrency TS
用于并发计算的扩展
2015
concepts TS
概念库,用于优化编译期信息
2015
TM TS
事务性内存操作
2015
parallelism TS
用于并行计算的扩展
2015
filesystem TS
文件系统
2014
C++14
第四个C++标准
2011
-
十进制浮点数扩展
2011
C++11
第三个C++标准
2010
-
数学函数扩展
2007
C++TR1
C++技术报告:库扩展
2006
-
C++性能技术报告
2003
C++03
第二个C++标准
1998
C++ ...
MFC学习
前言
唯一一个必须重写的 CWinApp 成员函数是 InitInstance。
自定义控件
在MFC应用程序中自定义按钮样式涉及到从CButton类派生一个新的类,并重写相关的消息处理函数以实现自定义的绘制逻辑。下面是一个基本的步骤指南和示例,展示如何创建一个具有自定义样式的按钮:
步骤 1:创建自定义按钮类
创建一个新的类:在你的MFC项目中,派生一个新类,比如命名为CMyButton,从CButton基类继承。
添加消息映射:在你的类声明中,使用DECLARE_MESSAGE_MAP()宏,并在cpp文件中添加BEGIN_MESSAGE_MAP和END_MESSAGE_MAP宏来映射你想要处理的消息。
重写DrawItem方法:DrawItem是CButton中的一个虚函数,用于绘制按钮的外观。你需要在你的类中重写这个函数来实现自定义绘制逻辑。
示例代码
以下是一个简化的自定义按钮类的示例,展示了如何重写DrawItem方法来改变按钮的样式:
12345678910111213141516171819// MyButton.h#pragma once#includ ...
c语言学习
前言
两年前学的c语言,好久没用了, 忘得差不多了, 现在重新学习一下,用博客记录下来,常回来复习复习
发布时间
通称
备注
1972
-
C语言的原始版本由Dennis Ritchie在贝尔实验室开发。
1978
K&R C
Brian Kernighan和Dennis Ritchie发布《C程序设计语言》第一版,介绍了C语言的经典版本。
1989
ANSI C (C89)
美国国家标准学会(ANSI)发布C语言的第一个官方标准,ANSI X3.159-1989,通常被称为ANSI C。
1990
ISO C
国际标准化组织(ISO)采纳ANSI C标准,发布ISO/IEC 9899:1990。
1999
C99
发布新标准,引入了新的语言特性,如//注释和长整型。
2011
C11
最新的C语言标准,引入了对并发的支持和其他一些新特性。
预处理器
定义
在C语言中,预处理器(preprocessor)是一个在编译阶段前执行的程序,它可以对源代码做一些预处理工作。预处理器通过预处理指令(preprocessor directives)来 ...
vs2019使用
一个解决方案对应多个项目
在vs2019中 解决方案是一个容器,它可以包含多个项目
创建一个空白解决方案
创建项目
这样我们就可以把多个项目在vs2019中打开了
项目调用
有时候我们希望一个项目能够调用另外一个项目,我们可以这样
现在有两个项目, 一个Dao,一个Service, 其中Service需要通过Dao项目访问数据库
将Dao项目输出为lib
在Service项目中引入
指定头文件
指定库地址
定义项目依赖
这一步不是必须的, 你可以手动将Dao项目生成为lib, 这里是自动生成lib
如果我们没有修改Dao里面的代码, 是不会重新对Dao进行构建的, 这一点很重要
动态链接库DLL生成
方式一 使用 __declspec(dllexport) 创建dll
Math.h
12345678910111213141516171819202122232425#pragma once#ifdef MATHLIBRARY_EXPORTS#define MATHLIBRARY_API __declspec(dllexport) #else#define MATH ...
k8s总结
资源对象
pod
Pod 代表的是集群上处于运行状态的一组 容器 的集合, 也就是说一个pod里面可以有多个容器, 容器是容器运行时的最小调度单位, 在k8s中pod才是最小调度单位
当在你的集群中运行了某个 Pod,但是 Pod 所在的 节点 出现致命错误时, 所有该节点上的 Pod 的状态都会变成失败。Kubernetes 将这类失败视为最终状态: 即使该节点后来恢复正常运行,也需要创建新的 Pod 以恢复应用。
任何给定的 Pod (由 UID 定义)从不会被“重新调度(rescheduled)”到不同的节点; 相反,这一 Pod 可以被一个新的、几乎完全相同的 Pod 替换掉。 如果需要,新 Pod 的名字可以不变,但是其 UID 会不同。
一个pod里面的容器在同一个网络命名空间 可以通过localhost 互相访问
容器重启策略
Always:无论容器的退出状态码是什么,都将重启容器。这是默认策略。
OnFailure:只有当容器以非零状态码退出时,才会重启容器。
Never:不论容器的退出状态码是什么,都不会重启容器。
容器重启不会删除pod,当重启次数超过一定次数 ...
tomcat的安装
下载Tomcat
1
环境搭建合集
前言
这里总结了环境搭建,以及一些注意点和配置
Tomcat
安装
windows
去官网下载压缩包解压就行 我这里用的Tomcat9
linux
1234mkdir /usr/local/tomcatcd /usr/local/tomcatwget -c https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.75/bin/apache-tomcat-9.0.75.tar.gz # 下载tar -zxvf apache-tomcat-9.0.75.tar.gz
目录解释
Tomcat 的安装目录结构中包含一些关键的子目录,每个目录都有特定的目的和用途:
bin:这个目录包含了用来启动和停止 Tomcat 服务的脚本文件。例如,在 Linux 系统上,你可以使用 ./startup.sh 和 ./shutdown.sh 来启动和停止服务。
conf:这个目录包含了 Tomcat 服务的所有配置文件,例如 server.xml、context.xml、tomcat-users.xml 等。这些文件允许你定制 Tomcat 的行为,例如修改默 ...
windows常用命令
前言
有时候需要用到windows命令,每次都要谷歌查一下,下一次还要继续查, 又不能保证每次都能查到,我索性总结一下
查看信息命令
查看端口是否被占用
1netstat -ano | findstr port(端口)
springMVC 源码
maven + Tomcat + spring + springMVC 纯注解搭建web环境
创建maven项目
12mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
导入依赖
1234567891011121314151617181920212223242526272829303132<dependencies> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.10</version> </depend ...