语言学习
文章平均质量分 93
帮主写书
人人可以成为技术大牛!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何开启python编程?
按照这篇文章的步骤,手动操作一遍,你应该就能开始用python了。原创 2022-02-20 17:10:42 · 1986 阅读 · 0 评论 -
D45.1.0 尽量用const enum inline 替换 #define
01 使用const替换#define通常,我们很习惯在程序起始位置写出#define ASPECT_RATIO 1.653的语句。这样的定义往往会有如下隐患: ASPECT_RATIO从未被编译器看见,可能在编译器开始处理源码之前就被预处理器移走了。名称ASPECT_RATIO可能没进入记号表内,于是会出现变异错误的信息。 当ASPECT_RATIO定义在一个非我们缩写的...转载 2019-07-17 21:23:19 · 273 阅读 · 0 评论 -
D41.1.1 const和指针的应用
原理书上看到这样一节代码:int gorp = 10;int sloth = 3;const int *ps = &sloth;//a pointer to const intint * const finger = &sloth;//a const pointer to int注意注释中的英文部分:指向常整型的指针和指向整型的常量指针。写代码过程中”c...原创 2019-07-08 15:59:29 · 222 阅读 · 0 评论 -
D37.1.0 读写文件
在相机采集程序中,通常需要将相机采集的图像数据和此时的图像高宽时间戳之类的存储下来。而所有数据在计算机内部都是用二进制表示的,所以可以将这些数据存储为二进制文件:DAT和IDX类型。DAT文件类型主要是“数据”文件。可以是任何内容,比如:文字,图形,视频或一般的二进制数据,它并没有统一具体的结构。IDX文件用来存放某一条数据在对应的dat文件中的位置信息。Dat文件格式如下:文件头:8...转载 2019-07-01 21:32:19 · 347 阅读 · 0 评论 -
D31.1.0 采集端如何测试
花了一年时间积攒的技术知识和经验可能就只有短短几百字。自己也觉得这样的效率太低了。采集端程序编写算是我的第一个真正有所收获的任务,最开始以为把别人的SDK封装一遍,开放几个接口就可以了;到后面进入到连调阶段发现我把问题想得太简单了,然后程序改了一遍又一遍,围绕的问题只有下面三个小点,这是暂时遇到的未考虑到的问题,以后可能还有。测试发送频率与接收频率采集端最主要的一个目的,就是把设备比如相...原创 2019-06-17 22:24:25 · 307 阅读 · 0 评论 -
D24.1.0 接口继承和实现继承
先给出一个类的定义:class Shape{public: virtual void draw() const = 0;//纯虚(pure virtual)函数 virtual void error(const std::string& msg);//虚(impure virtual)函数 int objectID() const;//普通函数 ...原创 2019-06-03 14:25:12 · 284 阅读 · 0 评论 -
D26.1.0 复制构造函数和拷贝赋值操作符
这是《Effective C++》中条款12的读书笔记。copy构造函数和copy assignment操作符,称为copying函数。通常情况下编译器有默认的构造函数和赋值操作符,这两个函数都可以将被拷对象的所有成员变量做一份拷贝。但是当程序员声明自己的copying函数的时候,编译器不再做默认的拷贝操作。例如下面一个Customer类:class Customer{pu...原创 2019-06-05 15:53:53 · 333 阅读 · 0 评论 -
D13.1.0 如何封装一个类 C接口版
接上一篇《如何封装一个类 C++接口版》,今天写如何以C语言形式开放一个类的接口。C++接口版本地址:https://blog.youkuaiyun.com/WOODS_CTBU/article/details/90106258。上一篇我写到我不想把我的实现文件.cpp提供给别人,我也不想让别人看到我定义的私有成员和我调用了哪家的SDK开发我的程序。我只想给别人开放该看到的东西。用C++的方式...原创 2019-05-18 20:15:10 · 479 阅读 · 0 评论 -
D21.1.0 C++,从未开启你的大门
这不是一篇纯技术文章,文末有煽情。先解决技术问题。在项目中我开发后端采集程序。项目开始,我使用的红外相机类型是CX320,后来因为某些原因不得不换同一个牌子的其他类型相机CG640。这两款相机使用的SDK是一样的,但是两款相机使用的具体函数不一样。这两个相机有两点不一样: 采集的图片大小不一样,一个是320*240,一个是640*480; 采集红外数据的具体函数不一样...原创 2019-05-30 10:32:40 · 224 阅读 · 0 评论 -
D12.1.0 如何在MFC中使用OpenGL实现图形旋转,缩放和移动?
01函数解释void glTranslatef(GLfloat x,GLfloat y,GLfloat z);函数功能:沿X轴正方向平移x个单位(x是有符号数),沿Y轴正方向平移y个单位(y是有符号数),沿Z轴正方向平移z个单位(z是有符号数)。void glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z);先解释一...原创 2019-05-17 15:56:18 · 1033 阅读 · 0 评论 -
D15.1.0 安全封装函数接口的一个小技巧
假设我们有一个表现日期的类的构造函数:class Data{public: Data(int month, int day, int year); ……};Data d(5, 21, 2019);这样写好像没任何问题,2019年5月12日。因为这函数使我们自己设计的,我们很清楚该怎么调用。可以这个接口开放给其他人,可能就会冒出以下两种错误: 错误的...原创 2019-05-21 16:19:27 · 307 阅读 · 0 评论 -
如何封装一个类 C++接口版
先描述题目要表达的意思:我现在需要基于别人给的SDK,开发我自己的程序。例如基于别人给的miniBird.h、miniBird.lib和miniBird.dll,我自己写了一个类叫Bird,并且我开发的这个类也是需要给别人使用的,所以我也要提供Bird.h、Bird.lib和Bird.dll这三个文件给别人调用。我肯定不想把我的实现文件.cpp提供给别人,我也不想让别人看到我定义的私有程序和其...原创 2019-05-11 10:06:38 · 2761 阅读 · 2 评论 -
使用抽象类开放接口的原理
此文的大部分内容摘自https://blog.51cto.com/billhoo/1650506,作者是Alex Blekhman。普通的导入导出C++类的方式都是使用_declspec(dllexport)/_declspec(dllimport)来导入导出类。使用只有纯虚函数的抽象类之所以不需要导出,是因为纯虚函数自带虚函数表。先定义一个纯虚函数类:// The abstr...原创 2019-05-11 10:04:08 · 282 阅读 · 0 评论 -
D14.1.0 编程经验总结
C++中的mutex(互斥锁)使用在做相机采集的时候,往往会用到底层的触发函数,在这个函数里面实现将采集到的相机数据发送出去。并且通常这个函数通常是一个线程。之前犯的错误是这样:认为凡是用到了线程,就得加上mutex(互斥锁)。由此可能造成线程的堵塞,造成效率低下。UINT WINAPI SocketThreadProc(LPVOID pParam){ Cox320IRC...原创 2019-05-20 16:23:57 · 228 阅读 · 0 评论 -
D9.1.0 如何在MFC中设定OpenGL的渲染环境
本文大部分内容摘自:https://blog.youkuaiyun.com/MissXy_/article/details/75671515,作者是:MissXy_。在控制台程序中使用opengl画图并显示可以非常方便,opengl自带窗口显示功能。现在我想在MFC中使用opengl画图,那如何让OpenGL画出的图形在MFC的视类窗口显示出来呢?Windows GDI是通过设备句柄(Device ...原创 2019-05-14 21:29:28 · 424 阅读 · 0 评论 -
VS开发过程中,“无法打开源文件 xxxx.h”问题的解决方法?
问题出现的原因只有一个: 你没有把相关的.h文件包含到你的工程中,不管你使用的是绝对路径还是相对路径。很多人的问题可能是路径很明确的包含进去了,可还是出现了“无法打开源文件”,为何?那是因为你的编译平台选错了,例如你建立了一个x86的项目,但是说选择包含路径的时候确实默认的x64平台。如下图:解决办法是: 如果使用的是x86那么弹出的属性页中就选择win32,再把相关的.h或者.li...原创 2018-12-19 16:53:20 · 26071 阅读 · 9 评论
分享