C/C++
C/C++语言
sunriver2000
这个作者很懒,什么都没留下…
展开
-
【C++ 11】Scope Exit代码分析
#可以把位于它两边的符号合成一个符号,它允许宏定义从分离的文本片段创建标识符。这里作用是合成一个独特的与代码行相关的函数名。});"原创 2023-08-18 18:39:40 · 275 阅读 · 0 评论 -
【Duilib】错误:红色波浪线,无法打开源文件“stdafx.h”
Duilib工程可以编译,但是智能提示:错误:红色波浪线,无法打开源文件“stdafx.h”。原创 2023-07-23 19:02:38 · 1501 阅读 · 0 评论 -
【C/C++】第三方压缩/解压缩库
Zip Utils共四个文件:zip.h、zip.cpp、unzip.h、unzip.cpp。转载 2023-06-23 09:46:47 · 345 阅读 · 0 评论 -
【Duilib】资源打包入EXE
资源打包成ZIP,ZIP文件放置EXE内部。原创 2023-06-21 18:15:00 · 494 阅读 · 0 评论 -
【Duilib】资源打包
资源打包成ZIP,ZIP文件放置EXE同级目录。原创 2023-06-21 17:47:23 · 198 阅读 · 0 评论 -
【Duilib】通过xml文件布局界面
上一篇【Duilib】入门,简单介绍了Duilib库的使用,这一篇测试一下通过xml布局界面。原创 2023-06-21 15:40:57 · 438 阅读 · 0 评论 -
【c/c++】curl编译(CMake方式)
进入下载页面,选择Old Releases。原创 2023-05-06 18:22:40 · 1664 阅读 · 1 评论 -
【Duilib】入门
VS版本:VS2013。原创 2023-03-12 17:01:07 · 238 阅读 · 0 评论 -
【C/C++】枚举enum与#define 宏的区别?
区别#define宏常量是在预编译阶段进行简单替换,枚举常量则是在编译的时候确定其值。 一般在编译器里,可以调试枚举常量,但是不能调试宏常量。 枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个。 枚举可以自增1,这样不用每一个值都定义,而宏必须每个值都定义。 枚举是一个集合,代表一类值,像你代码中的颜色归为一类,方便使用,而宏不能形成集合。...原创 2020-09-07 20:24:59 · 1858 阅读 · 0 评论 -
【C/C++】坐标旋转算法
1、围绕原点的旋转在直角坐标中,有p(x, y),直线op长度为r,直线op和x轴正向夹角为a。直线op围绕原点做逆时针方向b度的旋转,到达p’ (s,t),如下图。s = r cos(a + b) = r cos(a)cos(b) – r sin(a)sin(b) (1.1)t = r sin(a + b) = r sin(a)cos(b) + r cos(a)sin(b) ...转载 2020-03-02 21:09:31 · 6803 阅读 · 1 评论 -
【C/C++】局部变量作用域
编译器VC++ 2010代码#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;int main(){ //局部变量1,作用域为整个main()函数(除14-22行) int i; i = 5; {...原创 2020-02-17 11:05:08 · 580 阅读 · 0 评论 -
【C/C++】error C3861: “find”: 找不到标识符
环境编译器:VS2010/Win32现象如题解决方法增加引用头文件algorithm#include <algorithm>然后,编译通过。algorithm文件中find()函数定义如下,template<class _InIt, class _Ty> inline _InIt find(_InIt _Firs...原创 2020-02-01 17:19:23 · 1434 阅读 · 1 评论 -
【C/C++】获取计算机CPUID序列号
1、GetGPUId.h文件#pragma once#include <windows.h>#include <stdio.h>#include <string>class CGetCPUId{public: CGetCPUId(); virtual ~CGetCPUId();public: std::strin...原创 2020-01-08 11:02:37 · 6923 阅读 · 5 评论 -
【C/C++】MD5加密算法
1、MD5.h文件#ifndef MD5_H#define MD5_Htypedef struct{ unsigned int count[2]; unsigned int state[4]; unsigned char buffer[64];} MD5_CTX;#define F(x,y,z) ((x & y) | (~x & z)...原创 2019-11-09 12:23:25 · 563 阅读 · 0 评论 -
【C/C++】round()函数的实现
2.1 2.6 -2.1 -2.6 floor() 不大于自变量的最大整数 2 2 -3 -3 ceil() 不小于自变量的最大整数 3 3 -2...原创 2018-05-19 21:16:56 · 16413 阅读 · 4 评论 -
【C/C++】动态声明二维数据
问题动态声明一个类似int a[10][5]的二维数组。解决方法1、声明int **a;2、申请//二维数组初始化a = new int * [10];for (i = 0; i < 10; i ++){ a[i] = new int [5];}3、申请释放//释放for (i = 0; i < 10; i...原创 2018-04-19 14:27:04 · 375 阅读 · 0 评论 -
【C/C++】BasicExcel打开WPS Excel和MS Excel的细微区别
环境WPS Office版本:WPS Office 2016。MS Office版本:MS Office 2010。第三方类:BasicExcel V3.1。区别1、WPS表格创建并保存xls文件,以下简称WPS。2、Microsoft Office Excel 2010创建并保存xls文件,以下简称MS。3、两个软件都不做其它任何操作。使用BasicEx...原创 2018-09-07 10:25:46 · 2860 阅读 · 3 评论 -
【C/C++】 float类型大小端转换函数
方法一方法一使用了联合体。联合(union)变量的所有成员共享同片存储区/内存。1、声明联合typedef union FLOAT_CONV{ float f; char c[4];}FLOATCONV;2、定义函数float BLEndianFloat(float fValue){ FLOAT_CONV ...原创 2018-10-10 16:08:15 · 8588 阅读 · 1 评论 -
【C/C++】 short类型大小端转换函数
声明WORD BLEndianUShort(WORD wValue);实现WORD CConfigData::BLEndianUShort(WORD wValue){ return ((wValue & 0x00FF) << 8 ) | ((wValue & 0xFF00) >> 8);}...原创 2018-10-24 17:23:45 · 2231 阅读 · 0 评论 -
【C/C++】代码换行问题
编写代码时遇到代码超长的情况,为了代码的美观及方便调试,需要涉及到代码的换行问题。以下讨论了几种情况:1、#define宏#define MAX(a,b) \ ((a) < (b) ? (b) : (a)) 等价于#define MAX(a,b) ((a) <(b) ? (b) : (a)) 2、关键字的换行关键字换行支持:+ - * / ...原创 2018-11-10 17:48:55 · 11223 阅读 · 0 评论 -
【C/C++】__stdcall、__cdcel和__fastcall定义与区别
1、定义__stdcall__stdcall是Pascal方式清理C方式压栈,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上”@”和参数的字节数。 int f(void *p) –>> _f@4(在外部汇编语言里可以用这个名字引用这个函数).__cdecl__cdec...原创 2018-12-09 08:33:00 · 11423 阅读 · 1 评论