
C++
文章平均质量分 74
CoderAldrich
这个作者很懒,什么都没留下…
展开
-
C++单元测试框架Catch1.x简介
Getting CatchThe simplest way to get Catch is to download the latest single header version. The single header is generated by merging a set of individual headers but it is still just normal source code in a header file.The full source for Catch, includin转载 2021-11-23 19:54:45 · 418 阅读 · 0 评论 -
Visual C++ 里的异常处理
简介微软Visual C++是Win32最广泛使用的编译器,因此Win32反向器对其内部工作非常熟悉。能够识别编译器生成的粘合代码有助于快速集中于程序员编写的实际代码。它还有助于恢复程序的高级结构。我将集中讨论MSVC编译程序中的堆栈布局、异常处理和相关结构。假设对汇编程序、寄存器、调用约定等有一定的了解。名词解释:Stack frame — 堆栈帧,函数使用的堆栈段的片段。通常包含函数参数、返回调用方地址、保存的寄存器、局部变量和其他特定于此函数的数据。在x86(和大多数其他架构)上,调用者和被调转载 2021-10-22 17:33:28 · 1346 阅读 · 0 评论 -
C++ Runtime Code Reload
Quick prototyping and fast iteration times are incredibly important concepts for modern game development. Being able to hot swap an asset while the game is up and running can make the difference between a succesfull or a mediocre game simply because artist转载 2021-09-10 17:30:15 · 413 阅读 · 0 评论 -
UE 使用 方法 更新 科学使用
最简单的方法,把这个dll下载下来,替换UE安装目录的这个dll即可正常使用https://download.youkuaiyun.com/download/coderaldrich/10622529******************************************************************************************************...原创 2018-03-28 11:55:45 · 79939 阅读 · 62 评论 -
影响并发代码性能的因素
多处理系统中,使用并发的方式来提高代码的效率时,你需要了解一下有哪些因素会影响并发的效率。即使已经使用多线程对关注进行分离,还需要确定是否会对性能造成负面影响。因为,在16核机器上应用的速度与单核机器相当时,用户是不会打死你的。之后你会看到,在多线程代码中有很多因素会影响性能——对线程处理的数据做一些简单的改动(其他不变),都可能对性能产生戏剧性的效果。所以,多言无益,让我们来看一下这些因素吧,...原创 2019-03-04 16:49:53 · 1508 阅读 · 0 评论 -
C++11 宽窄字符转换
C++11增加了Unicode字面量的支持,可以通过L来定义宽字符:std::wstring str = L"中国人"; // 定义Unicode字符串将宽字符串转换为窄字符串需要用的codecvt库种的std::wstring_convert。std::wstring_convert需要借助以下几个Unicode转换器:std::codecvt_utf8,封装了UTF-8与U...原创 2019-03-01 14:52:30 · 1797 阅读 · 0 评论 -
C++11实现一个加载dll并调用其中函数的dll帮助类
在C++中调用dll中的函数比较繁琐,调用过程如下:在加载dll后还需要定义一个对应的函数指针类型,接着调用GetProcAddress获取函数地址,再转成函数指针,最后调用该函数。如下:void TestDll(){ typedef int(*pMax)(int a, int b); typedef int(*pGet)(int a); HINSTANCE hDll = Load...原创 2019-03-01 12:29:03 · 2514 阅读 · 0 评论 -
C++类头文件不暴露私有变量的一种写法
在类的头文件中不暴露私有变量,目的一般有两个:1. 提供给别人的dll对应的头文件中,不希望在头文件中暴露私有变量的名称;2. 因为私有变量的类型需要包含另一个头文件,所以不希望在头文件中包含其它头文件;一般可以用下面的方法来隐藏私有变量。TWebSocketServer.hclass TWebSocketServer{public: TWebSocketS...转载 2018-12-19 18:48:14 · 1484 阅读 · 0 评论 -
一段dump数据的代码留着备用
void hexdump(const void *p, size_t len){ int count = 1; while (len--) { if (count == 1) fprintf(stderr, " %p: ", p); fprintf(stderr, " %02x", *(unsigned char*...原创 2018-08-16 16:46:29 · 234 阅读 · 0 评论 -
Delete和delete []的区别
当调用delete的时候,系统会自动调用已分配的对象的析构函数。当我们用new [] 分配的对象是基本数据类型时,用delete和delete [] 没有区别。但是,当分配的对象是自定义对象时,二者不能通用。一般来说使用new分配的对象,用delete来释放。用new[] 分配的内存用delete [] 来逐个释放。delete与delete[]需要注意的地方 1:首先来说一个大家容易转载 2017-12-14 17:47:17 · 537 阅读 · 0 评论 -
C++11系列 Lambda表达式用法
转载自:https://www.cnblogs.com/alwayswangzi/p/7137427.htmlC++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda的语法形式如下:[函数对象参数] (操作符重载函数参数) mutable或exception声明 -> 返回值类型 {函数体}可以看到,Lambda主要分为五个部分:[函数对象参数]、(操作符...转载 2018-05-14 14:22:31 · 429 阅读 · 0 评论 -
C++11系列 常量表达式constexpr
转载自:http://towriting.com/blog/2013/09/17/constexpr/C++11有一些这样的改善,这种改善保证写出的代码比以往任何时候的执行效率都要好。这种改善之一就是生成常量表达式,允许程序利用编译时的计算能力。假如你熟悉模板元编程,你将发现constexpr使这一切变得更加简单。假如你不知道模板元编程,也没什么。constexpr使我们很容易利用上编译时编程的优...转载 2018-05-15 12:22:54 · 357 阅读 · 0 评论 -
C++11系列 使用emplace
转载自:https://blog.youkuaiyun.com/windpenguin/article/details/75581552在C++开发过程中,我们经常会用STL的各种容器,比如vector,map,set等,这些容器极大的方便了我们的开发。在使用这些容器的过程中,我们会大量用到的操作就是插入操作,比如vector的push_back,map的insert,set的insert。这些插入操作会涉及...转载 2018-05-15 18:03:39 · 814 阅读 · 0 评论 -
C++11系列 make_shared
转载自:http://bitdewy.github.io/blog/2014/01/12/why-make-shared/C++11 中引入了智能指针, 同时还有一个模板函数 std::make_shared 可以返回一个指定类型的 std::shared_ptr, 那与 std::shared_ptr 的构造函数相比它能给我们带来什么好处呢 ?优点效率更高shared_ptr 需要维护引用计数的...转载 2018-05-15 18:20:34 · 9880 阅读 · 1 评论 -
C++ std::pair的用法
转载自:https://www.cnblogs.com/lvchaoshun/p/7769003.html1 pair的应用pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first seco...转载 2018-05-16 11:36:58 · 1927 阅读 · 0 评论 -
C++ std::find_if
template <class InputIterator, class UnaryPredicate> InputIterator find_if (InputIterator first, InputIterator last, UnaryPredicate pred); Find element in range Returns an iterator to ...转载 2018-05-16 16:55:56 · 1968 阅读 · 0 评论 -
C++11 std::function和std::bind
关于std::function 的用法:其实就可以理解成函数指针 1. 保存自由函数void printA(int a){ cout<<a<<endl;}std::function<void(int a)> func;func = printA;转载 2018-06-26 15:28:22 · 234 阅读 · 0 评论 -
C++类头文件不暴露私有变量的一种写法
在类的头文件中不暴露私有变量,目的一般有两个: 1. 提供给别人的dll对应的头文件中,不希望在头文件中暴露私有变量的名称; 2. 因为私有变量的类型需要包含另一个头文件,所以不希望在头文件中包含其它头文件;一般可以用下面的方法来隐藏私有变量。 TWebSocketServer.hclass TWebSocketServer{public: TWebSocke...转载 2018-06-26 15:41:39 · 2287 阅读 · 0 评论