![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
煤球晶灵
这个作者很懒,什么都没留下…
展开
-
C++ stactic局部静态变量只能初始化一次之妙用
如何保证某一耗时的SDK接口调用完成,得到返回值后才能进行下一次的调用请求?我们可以利用静态变量来解决这一问题。我们都知道,C++的语法规定局部静态变量只能被初始化一次。静态变量会被放在程序的静态数据存储区里,这样可以在下一次调用的时候还可以保持原来的赋值。void ExampleClass::slotExample(const int& idx){ static bool flag = 0; if (flag == 1) return; flag = 1; int res =原创 2022-02-27 23:23:29 · 1146 阅读 · 0 评论 -
C++中的lambda表达式
lambda 表达式表示一个可调用的代码单元,可理解为一个未命名的内联函数,其形式如下:[capture list](parameter list) -> return-type{function body}capture list :捕获列表,能够捕捉上下文中的变量供 Lambda 函数使用(通常为空);parameter list : 参数列表,与普通函数的参数列表一致;return type : 返回类型function body : 函数体,内容与普通函数一样。不过除了可以使用参数原创 2022-02-25 11:20:31 · 128 阅读 · 0 评论 -
PostThreadMessage-Windows API线程消息传递
PostThreadMessage是一个Windows API函数。其功能是将一个队列消息放入(寄送)到指定线程的消息队列里,不等待线程处理消息就返回,可以实现线程间消息传递。函数原型:BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM IParam);输入参数:idThread,消息将被寄送的线程的线程标识符。Msg,指定将被寄送的消息类型。wParam,指定附加的消息特定信息。IParam,指定原创 2022-02-23 15:33:50 · 520 阅读 · 0 评论 -
C++单例模式
单例,顾名思义,就是说一个类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。其优点是可以避免一个全局使用的类频繁创建与销毁,节省系统资源。定义一个单例类有如下三个关键点:(1)构造函数是私有的。防止外界创建单例类对象;(2)使用类的私有静态指针变量指向类的唯一实例;(3)使用一个公有的静态方法获取该实例;最基本的单例模式如下:class Singleton{private: static Singleton* instance;private: Singleton原创 2022-02-19 18:07:05 · 521 阅读 · 0 评论 -
C++数据类型转换(string、char*、char[]相关)
1、string转const char*std::string str = "HelloWorld!"; //初始化string类型,并具体赋值const char* constc = nullptr; //初始化const char*类型,并赋值为空constc= str.c_str(); //string类型转const char*类型2、string转char[]std::string str = "HelloWorld!"; .原创 2022-02-17 14:25:12 · 572 阅读 · 0 评论 -
VS中解决方案的属性页常用配置介绍
一、头文件与导入库VC++目录:包含目录——寻找#include<xxxx.h>中的xxxx.h的搜索目录;库目录——寻找.lib文件的搜索目录;C/C++常规:附加包含目录——寻找#include<xxxx.h>中的xxxx.h的搜索目录链接器:常规-附加库目录——寻找.lib文件的搜索目录链接器:输入-附加依赖项:lib库名称提示:1、包含目录和附加包含目录的区别:包含目录:修改了系统的include宏的值,是全局的;附加包含目录:用于当前项目,原创 2022-02-15 19:45:39 · 2135 阅读 · 1 评论 -
Visual Studio分析dump文件
利用VS可以很方便的分析dump文件,如果有生成dump文件时对应的.pdb文件,就可以直接定位到出错的代码行。什么是PDB文件?PDB (Program Data Base) 即程序的基本数据,是 VS 编译链接时生成的文件,每个程序集(EXE 或 DLL)都有一个与之对应的 PDB 文件。DPB 文件主要存储了 VS 调试程序时所需要的基本信息,主要包括源文件名、变量名、函数名、对应的行号等等。因为存储的是调试信息,所以一般情况下 PDB 文件是在 Debug 模式下才会生成。有了这个文件,我们才能原创 2022-02-14 18:00:17 · 5545 阅读 · 0 评论 -
strcpy、strcpy_s、strncpy、strncpy_s 字符串拷贝用法
1、strcpy原型声明:char *strcpy(char* dest, const char *src);功能:将以src为首地址的字符串复制到以dst为首地址的字符串,包括’\0’结束符,返回指向dest的指针。不安全原因:依据源串的\0作为结束判断的,不会检查需要拷贝的缓冲区的大小,如果目标空间不够,就有溢出问题。局限:只能将两个字符串进行完整的复制和赋值,不能实现仅复制某个字符串的前几个字符。要求:src和dst所指内存区域不可以重叠且dst必须有足够的空间来容纳src的字符串。头原创 2021-12-30 20:15:57 · 2795 阅读 · 0 评论 -
C++回调模式——定义注册调用
举个栗子:例如:SDKManager(上层)需要调用SDKFunc(下层),而在SDKFunc中,需要反过来调用到SDKManager中的的函数SDKCallback(),则SDKCallback()称为回调函数。1、在SDKFunc中,需要做两件事:(1)约定回调函数原型即函数指针typedef void(STD_CALL* POINTERTYPE)(const int, void*, unsigned int, void*, unsigned int);(2)定义注册回调函数注册回调能.原创 2021-12-12 17:03:04 · 563 阅读 · 0 评论