- 博客(32)
- 收藏
- 关注
原创 《工作笔记二》python自动生成代码
为什么需要自动生成代码在游戏公司我发现一个问题,存在大量相似的代码,而公司主程处理这些相似代码的办法则是编写自己的代码生成工具来自动生成这些代码,因为编写相似的代码不仅耗时,还不能保证每个人编写的代码格式是否标准,所以在这里使用代码生成工具能提升效率的同时,让程序员更加的专注与逻辑部分的编辑。那选择什么方式来生成代码呢我公司里的两位主程分别采用了不同的方法,首先项目老大使用的时正则...
2018-08-03 09:47:06 16319 1
原创 Lambda表达式使用场景解析C++11
Lambda表达式的使用场景其实我在刚开始使用lambda的时候就挺好奇什么时候使用好,经常在不需要使用的时候使用上了,真的是多此一举,那么要在什么情况下使用呢? 因为lambda表达式又叫匿名函数(当然我们也可以理解为是一个未命名的内联函数),那么肯定就跟函数挂上关系了,通常情况写你在编程的时候需要将这段代码封装到一个函数里面再来调用,那这个时候就避免不了想函数名了,其实有时候取名字真的是...
2018-05-27 15:39:39 16945 4
原创 Linux-(C/C++)生成并使用静态库/动态库
静态库/动态库概要在Windows下静态库的后缀为:.lib、动态库后缀为:.dll;而在Linux下静态库的后缀为:.a、动态库的后缀为:.os。那么什么是静态库呢?首先我们来看看程序编译的大体流程:预处理——编译——汇编——链接在我们的项目开发中,有些代码会被反复使用,那么这时我们便可将这些代码编译成库的形式来调用,像静态库就是在可执行文件中包含库代码的一份完整拷贝,但这种方式有个很严重的缺点...
2018-05-15 16:35:12 31421 1
原创 Python和imutils获取图片的鸟瞰图
今早天气不咋地,不出太阳也就算了还下着雨,可能是出于兴趣吧,抽空来学习学习最近比较热门的Python!题外话说完了,进入正题! 在学习python时无意中发现了一个软件包imutils,它为我们提供了非常方便的图像处理函数,可以说是对OpenCV的简化,这里就不对他做详细介绍了,如果想了解更过就进github里面自行学习吧!下面阐述我从imutils教程中学到的内容,如果你还...
2018-03-15 18:14:28 21082 6
原创 Lua开发笔记—时间相关处理
时间相关操作做项目时经常会遇到一些时间方面的处理,结合之前做项目写的,在这里做些笔记,以备不时之需。(以下代码纯属在文档中编写,若有报错,看逻辑即可,本人写此笔记的目的也只是为了记录逻辑,毕竟各项目中的代码还是略有不同)Utils = {}Utils.DefaultDate = "1970-01-01 08:00:00" --默认时间日期Utils.oneDay = 86400WEEK_TYPE = { SUNDAY = 0, -- 日 MONDAY = 1, -- 一 TUES
2020-12-27 15:07:36 1014
原创 大小端字节序与序列化
大端字节序这是一种更适合人类读取数据的方式举个例子,有如下数据:0x12345678高—————>低 位按8位为一个字节逻辑(byte进行网络传输时不需要进行网络字节序转换)把上面数据拆分成4部分:0x12 0x34 0x56 0x78地址: 0x100 0x101 0x102 0x103|———|—12—|—34—|—56—|—78—|——|从左到右:低地址到高地址从左到右:高位到低位记忆方法:低高高低,这是一种便于人类读取的方式。像120,百位十位个位,也是从高
2020-09-23 11:43:57 2068
原创 Mysql对于Innodb关于ORDER BY使用索引的性能问题
如何提升 ORDER BY 查询速度通常ORDER BY(对某些列进行排序)语句的性能方面对新人来说很容易被忽略。当然尽管对ORDER BY 的列加索引也不一定能够对性能有所提升!关于ORDER BY是对我们查询出来的记录按照某种规则进行排序(也就是排序算法)。如果查询出来的结果集过大的话,将无法再内存中直接进行排序,可能要借助磁盘空间来暂时存储中间结果(凡是跟磁盘挂钩的,速度肯定不会快到哪里去),最后才返回给客户端显示。通常情况下如果遇到数据量大的时候使用ORDER BY我们可以考虑给ORDE
2020-06-22 20:29:30 818
原创 Mac安装Homebrew错误历险
啥是Homebrews?Homebrew是一款Mac OS平台下的软件包管理工具,如果用过Linux的你可能知道yum或apt-get这两个管理工具(我在未拥有Mac前常常羡慕Linux下强大的命令行操作,就安装而言就非常方便快捷了,而现在有了Mac,瞬间觉得Windows跟Linux合体了,瞬间被圈粉),拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。那怎么安装Homebrew呢?在这个过程中有人一帆风顺,直接就
2020-06-18 23:49:46 1756
原创 Mysql远端数据导入到本地数据库
为什么会写这个脚本在工作中时常要从内网拉数据,有时为了方便就直接用Navicat工具的数据传输,将内网的数据库数据拉到本地,但每次拉取都需要选择源头、目标、某某库之类的,如果是拉数据的评率高的话,那这种方法的容错率很低,说不准某个时候写代码写的懵逼懵逼的时候,突然要从内网拉数据,结果把源跟目标填反了,那真的是罪过了。废话不多说了,我直接把我写的脚本贴出来了,往下看。配置文件、bat脚本db_local.cnf[client]host = localhostuser = rootpasswor
2020-05-27 14:55:17 1974
原创 作为C++程序员怎么能不会这些技巧?
直入主题作为C++程序员你不知道这些技巧?这哪能行?赶紧来学学。 以下是我在平时项目开发中常喜欢使用的一些技巧,希望对你有所帮助。(在恰当时候使用一些技巧能让你的代码变得更加美)(一)do{}while(false)使用在写代码的时候有没这种情况,伪代码:void model(){ if (条件1) { ...; // ...其他代码 if (条件2) { ...; if
2020-05-22 17:07:40 5189
原创 C++与Lua闭包
起因做游戏开发多少会接触lua,其中闭包也是挺常见的一种了,因为使用lua闭包的缘故,我就尝试着在C++使用lambda来写个。代码分析以下是lua的闭包代码:function fun1(param1) local i = param1 return function() i = i + 1 return i endendlocal test1 = fun1(1)lo...
2020-03-27 15:47:25 349
原创 C++宏的黑科技用法《结构体字节序自动转换》
背景慢慢的自己管理项目已经一年了,这也是我管理的第一个项目,期间触及了挺多的知识盲区,开始慢慢的摸索,慢慢的熟悉,将压力转化为了动力。我在这里想总结下作为新人的我在这一年里收获了什么。开始优化可能源于自己管理项目,我开始放飞自我,但凡自己感觉看不顺眼的地方就改改改(还好没改出什么大问题出来)。开始每优化一个代码我都会反复去测,生怕出问题。通过不同的写法来简化代码,期间用的最多的应该是宏吧!这...
2020-03-23 19:34:47 1100
原创 C++桌面显示恶搞
整理篇今日整理了一下自己的电脑,翻出了一些开始学习时觉得有意思的代码。我一直觉得编程始于兴趣,也强于兴趣,兴趣是我们学习最好的老师。虽然这里给出的代码没什么难度,获取可以说很简单,但这还是我好多年前学C++时学习的一个Windows编程的程序,希望能帮助正在初学的小伙伴们。展示先看看效果图吧正如图片所示,这只是一个让桌面错乱的一个程序。通过windows API很容易的实现。注意 这...
2020-03-08 22:06:49 2614 2
原创 C++初学者该如何写程序?
前序转眼一年多未写过博客了(工作太忙了),最近一直在思考一个问题,如果要写博客该写什么好?若想写的东西多可却很杂,那好像并没什么用。要不写个系列吧?那从哪里开始呢?要不从初学开始吧?初学篇未接触过编程前,大多数人都会觉得学了就可以什么都能干了,(可能很多程序员都有过或多或少的经历,朋友们可能会问你会黑别人电脑吗,当过黑客吗?不会!那你会修电脑吗?也不会!)其实程序员不是这样的没有...
2020-01-17 14:47:11 1869
原创 MFC制作本地文件系统(三)
前序上一步我们实现了双击响应事件,这节我们将在里面添加响应函数。函数主要是用于双击一个文件夹后进入到该文件夹内部,并可以通过双击 ..两个点这一栏回到上级目录。实现1、我们来到LocalFileSysDlg.h文件下,我们在CLocalFileSysDlg类里面声明如下一些变量及函数 VOID FixedLocalFileList(CString strDirectory =...
2018-08-12 14:33:55 1232 3
原创 MFC制作本地文件系统(二)
前序该章是在上一章的基础上继续完善代码,先来看看我们上一章做到哪了 那么我们接下来要先给控件加上图标(不然太丑了),然后先实现双击进入目录(为了做到简单些,我这里的不会去做位图按钮来实现返回功能,而是直接在工具箱中添加一个按钮来响应返回上级目录的功能),不会做位图按钮的请查阅我之前的博客。实现1、因为我们要给控件中添加磁盘跟文件的图标,那么我们的图标哪里来呢?当然是从我们的系...
2018-08-10 00:06:45 1213
原创 MFC制作本地文件系统(一)
前言这是我之前做项目的时候一步步查阅慢慢做出来的,为方便以后使用,先记下来。 可能看标题还是有些模糊,我们先来看看效果图吧! 现在图片看完了,我们进入主题吧,我将一步一步实现本地的文件管理系统(PS:你过这里我只对List Control 控件进行讲述,而对上面的位图控件则不做概述了,想要了解如何做位图控件的小伙伴可以到我之前写的博客中查阅)。代码实现 温馨提示 本项目...
2018-08-06 22:37:13 6071
原创 《工作笔记一》C++函数式宏定义的使用
什么是宏定义?通常宏定义的格式为:#define 标识符 字符串 相信大家都见过非常多了,通常我们编译过程中的预处理(预编译)工作又叫宏展开,将代码中的宏名替换为字符串。为什么要用宏函数?宏函数虽然在处理复杂的函数(例如递归函数)时宏会降低代码的执行效率,但是对于逻辑简单的函数来说,准确的使用宏函数往往能提高程序的执行效率,因为在主函数中调用普通函数的时候需要进行入栈跟出栈操作,而...
2018-07-11 22:55:41 1764
原创 MFC使用URL读取图片
MFC使用url地址读取图片该方法读取的作用?很多情况下我们是使用http协议与后端进行交互的,那么我们MFC如何通过url地址来直接显示图片呢? 下面先来看看我在读取的效果图: 准备工作我的后台是使用.NET Core实现的,在这里我提供了图片的地址:http://localhost:5000/images/picture.jpg (当然该地址你们是使用不了的,读者可以...
2018-06-07 21:30:01 2619 3
原创 MFC制作位图按钮
MFC制作位图按钮前序学习过MFC的读者应该都知道MFC自带的控件是相当丑陋的,我曾在自带按钮的基础上做了一些美化可总会遇到挺多问题,当然也是技术不过关的表现,我在原本的按钮上添加图标后,觉得按钮样式太丑了,想给MFC使用皮肤样式,但这时却出现了各种不兼容问题(图片显示不了了),之后我也没细细研究了。后来想着还是制作自己的按钮比较好看点,最近在看一个开源项目的时候发现了项目里面的按钮是...
2018-06-03 23:45:30 8418 2
原创 C++实现观察者模式(Linux环境)
什么是观察者模式观察者模式(有时又被称为模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。 观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界...
2018-05-23 10:29:12 504
原创 C++使用抽象工厂模式实现数据库操作(Linux环境)
抽象工厂模式解析 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不是这些抽象产...
2018-05-22 18:58:18 851
转载 epoll原理
转载地址:https://www.cnblogs.com/pluser/p/epoll_principles.htmlepoll原理设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一时刻只有几十个或几百个TCP连接是活跃的(接收TCP包),也就是说在每一时刻进程只需要处理这100万连接中的一小部分连接。那么,如何才能高效的处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的T...
2018-05-08 20:42:20 1198
原创 IOCP模型浅析
什么是IOCPIOCP即是完成端口,完成端口会充分利用Windows内核来进行I/O的调度,是用于C/S通信模式中性能最好的网络通信模型,当初微软提出完成端口的初衷是为了解决“one thread per client ”的缺点, 它充分利用内核对象的调度,只使用少量的几个线程来处理和客户端的所有通信,消除了无谓的线程上下文切换,最大限度的提高了网络通信的性能,可以说在Windows中没有比它更好...
2018-05-02 14:38:16 1664
原创 重叠IO模型知识
什么是重叠IO重叠模型是一种异步IO模型。多线程结构中就考虑到采用异步的方式进行设备读写操作,即我们告诉系统对设备的读写数据,而同时应用程序的其他代码继续执行,直到获取设备操作完毕的系统通知。重叠IO的作用我们在这里做一下对使用重叠IO和非重叠IO的解释:非重叠IO的情况:在Windows中,我们通常使用CreateFile、WriteFile、ReadFile等函数对文件进行操作时,会让我们觉得...
2018-04-29 16:20:04 1024
原创 Windows消息机制
概述在Windows中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows应用程序都是消息驱动的。 一个消息是由消息的名称(UINT)和两个参数(WPARAM, LPARAM)组成。消息的参数中包含有重要的信息。例如对鼠标消息而言,LPARAM中一般包含鼠标的位置信息,而WPARAM参数中包含了发生该消息时,SHIFT、CTRL等键的状态信息,对于不同的消息类型来说,...
2018-04-27 14:13:25 229
原创 C/C++编译原理
整体过程C源程序——>预编译处理(.c)——>编译、优化程序(.s、 .asm)——>汇编程序(.obj、 .o、 .a、 .ko)——>链接程序(.exe、 .elf、 .axf等)C/C++编译就是将C/C++的代码映射到相应的机器码,以及讨论其中的内存管理模式,包括内存的分配,如何使用等等,整型、数组、指针等这些在内存中的实现机制。分点解析编译:将相应的高级语言代码映...
2018-04-26 22:36:17 781
原创 C++各类字符串之间的转换
相信大家在写MFC代码时经常会遇到字符串的转换问题,下面是我之前摘抄起来的字符串转换方法:CString在MFC中非常常见的字符串格式,我在这里对CString做下介绍: CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于 CString 地址之下的一个隐藏区域)以及一个缓冲区长度。 有...
2018-04-18 23:12:53 1755
原创 C++11之atomic原子操作
atomic介绍atomic对int、char、bool等数据结构进行了原子性封装,在多线程环境中,对std::atomic对象的访问不会造成竞争-冒险。利用std::atomic可实现数据结构的无锁设计。所谓的原子操作,取的就是“原子是最小的、不可分割的最小个体”的意义,它表示在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源。也就是他确保了在同一时刻只有唯.........
2018-04-18 16:09:09 24986 8
原创 C++之使用jsoncpp解析json数据
说到http协议那就离不开json数据的解析了,那么在C++中如何对json数据进行解析呢?博主在这里使用jsoncpp来解析json数据。 首先需要搭建jsoncpp的环境,这里我就不再详细介绍,给大家推荐一篇博客参考:博客地址。如果还没下载jsoncpp的读者,可以通过下面链接下载,下载链接,密码:9nl3。下面进入jsoncpp的使用说明: 一、引入头文件#inc...
2018-03-16 08:08:24 6701
原创 C++之Libcurl库实现HTTP协议传输数据
一直想写一些关于C++的博客,却一直没抽空来写,今天趁着代码打累了,来写写年前想写的博客。 在做项目时,因为我使用的后台使用.net core写的,那么C++就需要使用http协议来同后台进行交互了。C++要如何使用http协议呢?这里我推荐使用Libcurl这个库,不得不说这个库真的很强大(有兴趣的小伙伴可以去查阅查阅),当然也可以使用其他的,下面我们...
2018-03-15 21:09:34 10236
原创 VS使用Mysql API连接Mysql的那点问题
这是我第一次写文章,请高手勿喷。我在这里想说说我在控制台和MFC两个不同的平台下使用Mysql API连接Mysql遇到的问题。1、在控制台下连接Mysql只需两个步骤,(1):项目->属性->配置属性 -> 链接器->输入 下找到附加依赖项,并在该选项中添加libmySQL.lib。(2)将Mysql的API相关的动态库Libmysql.dll,移到你的项目文件下,而相关...
2016-10-29 23:34:07 601
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人