C-C++
湖广午王
这个作者很懒,什么都没留下…
展开
-
CMake入门笔记
什么是CMakeCMake CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makef原创 2017-06-12 15:39:02 · 2257 阅读 · 2 评论 -
Lua封装&C++实践(二)—— C++调用Lua函数的封装
在上篇博客中,记录了Lua与C/C++的基本交互,但是如果按照那样来使用的话,实在太麻烦了,所以我们开始进行封装。本篇博客主要记录C++调用Lua函数的封装。封装目标C++调用Lua,复杂的地方主要在于需要去理解Lua的堆栈,函数、参数都需要依次加入堆栈,结果也需要从堆栈里面取,Lua支持返回多个值,取值就需要按照在堆栈中的顺序多次去取。实际上呢,我们需要的就是调用一个lua函数,返回函数执行...原创 2019-07-08 00:14:50 · 1602 阅读 · 0 评论 -
Lua封装&C++实践(一)——Lua和C/C++的基本交互
Lua 是一个小巧的脚本语言,它本身就是作为嵌入脚本而设计的,在目前所有脚本引擎中,Lua的速度是最快的。而且它的解释器非常轻量,其解释器不过200k(不同版本可能略有差异)。Lua项目包含许多技术点,花些时间研究可以有不少收获,学到很多东西。包括与宿主语言的交互、内存管理、虚拟机实现、协程、闭包、异常捕获机制等等,后续有时间慢慢研究下。如题所示,本系列主要记录Lua封装相关笔记,主要是记录C...原创 2019-07-07 20:05:07 · 2384 阅读 · 2 评论 -
C++ 笔记 —— 实现一个环形阻塞队列
实现原理环形阻塞队列,顾名思义,首先,它是一个队列,然后,它应当是一个环形,并且它是会进行阻塞的。但是根据我们的常识,内存地址是用一个long long int来存储的,我们存储的数据的地址无法绕成一个环,所以我们想要成环的话,需要我们自己去处理。如上图,相比环状实现的来说,数据在内存中的存储更接近线性实现那样。线性实现和环形实现中,我们都记录着队头、队尾。如果是一个内存中,数据可以存储为环...原创 2019-03-31 12:18:35 · 1099 阅读 · 1 评论 -
MVP变换矩阵推导及C++实现
在进行图像处理时,经常会用到矩阵,尤其在游戏中,基本都会存在一个Camera的概念,实际上,这个Camera一般就是矩阵或者是对矩阵的封装。一个4x4矩阵,可以将平移、旋转、缩放等变换操作包含在内。但是为了便于理解与控制,这个最终的矩阵,往往是由一系列便于理解的参数来运算得出的。而Model-View-Projection变换模型就是最常用,一般来说,我们并不比去实现它们,因为有太多的工具类可以直...原创 2019-01-13 01:53:24 · 8473 阅读 · 8 评论 -
C++ 笔记——字符串自定义加密处理
根据惯例,先放定义。加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。 加密算法非常多,常见的加密算法有MD5、AES、Base64、DES等等。但是此篇博客记录的加密算法和上述加密算法无关,主要记录的是按照个人喜好对字符串做处理的简单方法。字符串编码一段字符串,把所有的a变成c,把c变成d,把d变成a,我们可以把这...原创 2018-12-31 15:41:23 · 7395 阅读 · 0 评论 -
Lua封装&C++实践(三)——Lua注册C++构造函数
一个std::tuple<int,float,std::string>这样的结构,如何传递给int call(int,float ,std::string)这样的函数作为参数?如何根据函数的指针,知道这个函数的参数列表?在后面,Lua注册C++,如果希望调用尽可能简单,可能需要这样的功能了(不需要也假装需要,这么好玩的东西,研究以下总是好的)。Lua注册C++类的接口对于Lua注...原创 2019-07-14 22:28:26 · 1246 阅读 · 0 评论