- 博客(50)
- 资源 (4)
- 收藏
- 关注

原创 VS2019 Boost.Python封装C++库学习记录
比较简单,仅供小白参考哈。本人安装的是Python3,安装目录为C:\Python37;1.下载boost库在windows下通过b2.exe自己尝试编译库文件,编译方法可参考本文。boost库下载链接:下载链接boost库编译方法:boost库编译方法2.打开VS2019,新建类型为dll动态链接库的项目,起名TheAPP,测试程序如TheAPP.cpp,内容如下:#include "pch.h"#include <boost/python.hpp>#include <i
2020-04-18 11:05:59
1035
原创 Qt/VS生成pdb文件
pdb(Program Debug DataBase)文件:vs编译链接时生成的文件,主要存储了vs调试程序时所需要的基本信息,主要包括:源文件名、变量名、函数名、FPO(帧指针)和对应的行号等等,因为存储的是调试信息,所以一般情况下pdb文件是在Debug模式下生成的。
2023-08-01 23:25:34
1801
原创 记录VS中项目输出目录设置方法
首先新建一个vs工程,解决方案名称Boost,项目名称SharedPtr,初始目录如下图:选中项目右击打开属性页面,将配置更改为下图:编译工程后,再次打开生成目录如下图:
2022-03-13 14:34:53
4596
原创 设计模式之单例模式
动机在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们逻辑正确性和良好的效率。思考:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?头文件:#include <iostream>#include <mutex>#include <atomic>class Singleton{private: Singleton(); Singleton(const Singleton& other);pu
2022-02-27 22:54:38
472
原创 Window平台编译log4cpp使用方法记录 (二)
在上篇Window平台编译log4cpp使用方法记录 (一)中完成对下载的源码编译工作,接下来在工程中去应用该功能。
2021-11-27 16:41:51
751
1
原创 Window平台编译log4cpp使用方法记录 (一)
1. 源码下载先在网上下载源代码,点击:下载链接,下载后解压如下图,打开msvc10文件夹,源码是用vs2010打开,此处安装的是vs2019,打开会自动提示升级该项目,点击确定即可。2 右击log4cpp项目选择生成,首次编译会出现一些错误,解决方法如下:错误1:无法打开输入文件“Debug\NTEventLogCategories.res”。解决方法:①在log4cpp项目工程中找到NTEventLogCategories.mc文件,选择该文件上然后右键选择属性,在弹出窗口中找到“配置属性–&
2021-11-27 08:26:50
1797
原创 C++代码里增加调试打印消息
1.在头文件里加入以下宏定义代码#ifdef _DEBUG#include <stdio.h> #define xPrintf(...) printf(__VA_ARGS__)#else #define xPrintf(...) #endif //_DEBUG2.在需要输出调试信息的代码块增加打印消息,注意return语句的上方,如下所示:void* MemoryAlloc::allocMem(size_t nSize){ if (!_pBuf) { initMemo
2021-08-28 22:16:28
1254
转载 如何对Bit进行置位、复位和取反操作
如何对Bit进行置位、复位和取反操作置位操作使用位操作OR(|)操作符去设置某个bit位为1.number |= 1UL << n;将number的第n位置1,n从0开始.如果number超过unsigned long长度,则使用1ULL << n.复位操作使用位操作AND(&)操作符去设置某个bit位为0.number &= ~(1UL << n);将number的第n位置0,n从0开始.取反操作使用位操作XOR(^)操作符去设
2021-04-13 09:23:59
4968
1
原创 用Printf在控制台打印带颜色的消息
函数参数属性代码案例#include <iostream>#include <stdio.h>int main(){ printf("\033[1;31;40m hello world\n\033[0m"); printf("\033[4;32;40m hello world\n\033[0m"); printf("\033[5;33;40m hello world\n\033[0m"); printf("\033[7;34;40m hello world\n\
2021-03-22 22:18:45
324
原创 C++ 生成随机数 srand()和rand()
1. rand()rand(产生随机数)表头文件: #include<stdlib.h>定义函数 :int rand(void)函数说明 :因为rand() 的内部实现是用线性同余法做的,它不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand() 会返回一随机数值,范围在 0 至 RAND_MAX 间。在调用此函数产生随机数前,必须先利用 srand()设置好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为 1。rand()
2020-06-14 19:18:53
465
原创 函数介绍(内联函数和函数重载)
1.内联函数2.函数重载重载概念:同一个标识符在不同的上下文有不同的意义;函数重载:–同一个函数名定义不同的函数;–当函数名和不同的参数搭配时,表达的意思也不同;–由函数名和函数参数列表决定的,与返回值无关系;函数重载至少满足以下条件:–参数个数不同–参数类型不同–参数顺序不同编译器调用函数重载时的原则:①将所有同名函数作为候选者②尝试查找可行的候选函数(以下几种同时进行)–通过函数名精确查找;#include <iostream>int func(int a,
2020-06-14 19:17:45
297
原创 C++中类型强制转换
C++中强制类型转换有四种:1.static_cast格式:static_cast(Value);–用于基本类型间的转换,但不能用于基本类型指针间的转换;int i = 0;char c = 'C';<br>int *pi = &i;<br>char *pc = &c;c = static_cast<char>(i); //没问题,将i转换为char型<br>pc = static_cast<char*>(pi); /
2020-06-14 17:12:22
253
原创 C++ new和malloc的区别
1.new关键字是C++中的一部分,malloc是由C库提供的函数;2.new是以具体类型为单位进行内存分配,malloc只能以字节为单位进行内存分配;3.new在申请单个类型变量时可进行初始化,malloc不具备内存初始化的特性。...
2020-06-14 17:08:00
232
原创 Visual Studio常用快捷键
自动格式化代码:Ctrl + k,Ctrl + f;注释代码:Ctrl + k,Ctrl + c;取消注释代码:Ctrl + k,Ctrl + u;全屏显示代码:Alt +Shift + Enter,再按一次退出;生成解决方案:Ctrl + Shift +B;回到上一个光标位置:Ctrl + -;前进到下一个光标位置:Ctrl + Shift + -;复制/截切/删除行:将光标移至改行,通过Ctrl+c或Ctrl+x或Ctrl+l;撤销/反撤销:Ctrl+Z/Ctrl+Y;查找窗口:Ctr
2020-05-26 23:00:03
488
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人