C++
文章平均质量分 82
木易-YoungWang
程序员=逻辑清晰+想法
展开
-
C++实现RS485通信
1、虚拟串口配置,使用虚拟串口助手配置虚拟串口,注:选择一个未被使用的串口进行实验 虚拟串口配置程序下载地址:https://download.csdn.net/download/wangzhiyang925/20395464模拟串口收发配置程序下载:https://download.csdn.net/download/wangzhiyang925/20395980COM10发送消息:端口号选择COM10、波特率设置:115200、设置定时发送再开启一个接收串口,设置端口号:...原创 2021-07-21 13:43:12 · 6816 阅读 · 0 评论 -
RS485-C/C++串口通信原理及读写与操作
http://wangbaiyuan.cn/c-serial-communication-write-reading.html在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。在W转载 2021-07-20 18:17:54 · 8807 阅读 · 0 评论 -
C++ 写文件使用API和内存映射比较
比较写文件速度:windows的API接口和内存映射,详见下面代码:#include <wtypes.h>#include <windows.h>#include <stdio.h>#include <cstdint>#include<string>using namespace std;// 从1601年1月1日0:0:0:000到1970年1月1日0:0:0:000的时间(单位100ns)#define EPOCHFILE原创 2021-07-20 14:15:52 · 615 阅读 · 0 评论 -
C++ 临界区、互斥对象、信号量、内核事件
使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果翻译 2014-06-27 18:52:23 · 3755 阅读 · 0 评论 -
C/C++程序员必须熟练应用的开源项目 .
作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应用过, 但是回过头仔细想想,其实以前自己写过的这些代码,只能是在特定的项目或者特定的环境中使用, 对于自己来说, 在不同的项目中应用, 只需要复制代码, 改改也就可以了, 因为自己写的代码自己很熟悉。转载 2014-07-01 23:35:29 · 422 阅读 · 0 评论 -
C/C++之回调函数
今天讨论下C/C++中的回调函数。 在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指针。(2原创 2014-07-22 23:18:14 · 422 阅读 · 0 评论 -
C++一级指针和二级指针做参数传递讲解
一级指针做形参:首先一定要明白形参和你传递参数的那个实参是两个不同的变量,即使同名也还依然不同。指针传递的是一个变量或者一个值的地址,但是它本身还是采用值传递的方式。即你不能使它指向另外一块地址,但是你可以改变它指向的空间里存的值。二级指针做形参:二级指针也是传值,但是他指向的地址是个一维指针,所以可以改变二维指针指向的地址空间里的内容也就是要申请空间的一维指针,不能改变二维指针本身的值,原创 2014-07-01 22:23:00 · 1170 阅读 · 0 评论 -
MFC 读取EXCEL中数据
MFC读取Excel例子(2013-01-12 00:04:24)转载▼标签:365mfcit分类: MFC-office操作1. 首先要将excel类添加到工程中。在ClassWizard中,【Add Class】,在Excel的安装目录找到Excel.exe(Microsoft2003是Excel原创 2014-07-08 20:49:26 · 5181 阅读 · 1 评论 -
OpenGL 函数介绍
OpenGL开发库的组成开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。它采用C语言风格,提供大量的函数来进行图形的处理和显示。OpenGL库函数的命名方式非常有规律。所有OpenGL函数采用了以下格式 库前缀有gl、glu、aux、glut、wgl、glx、agl等等,分别表示该函数属于OpenGL那个开发库等,从函数名后面中还可以看出需要多少个参数以及参数的类型。翻译 2014-07-07 17:55:36 · 908 阅读 · 0 评论 -
C++指针详解
先来说一下指针的命名:我们声明指针变量的时候,建议用“ptr”来开头,这样是一种好的习惯,可以让你看到这个变 量就知道他是一个指针变量。也要注意给指针添加必要的注释。先来看看内存: 内存是以字节为单位的一片连续的存储空间,这些单元都有自己的编号,这就是内存地址。操作系统通过内存地址来实现对内存的管理。原创 2014-06-20 14:18:55 · 927 阅读 · 1 评论 -
C++ 虚函数表解析
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使转载 2014-06-19 15:31:29 · 364 阅读 · 0 评论 -
variantt转int:char转换Variant?怎么转定义一个charx[]
问:在VC中,怎样把一个int转换为_variant_t类型是不是要在整型变量前加一个修饰符例如int i=;variant_t var;var=.?需要怎么...答:int a=;variant_t var;var=(_variant_t)(long)a;问:char*转换Variant?怎么转定义一个char x[];或者是int X[];我想把这个数组转换成VARIANT,然后发送给原创 2014-07-29 19:19:30 · 1524 阅读 · 0 评论 -
用ATL创建COM组件及实例讲解
一、创建一个模型(工程) MyProj。二、给模型(工程)增加一个组件 MyCom。三、给组件增加方法(函数) MyF1、MyF2、MyF3、MyF4。一、创建模型(工程) MyProj在VC++6.0工作平台中,点击菜单 File下的 New菜单项,在出现的 New对话框中选中 Projects卡片,在列表框中选中 ATL COM AppWizard(活原创 2014-07-29 23:09:18 · 1770 阅读 · 1 评论 -
推荐-高质量C++/C编程指南(林锐)
推荐-高质量C++/C编程指南(林锐)版本/状态作者参与者起止日期备注V 0.9草稿文件林锐 2001-7-1至2001-7-18林锐起草V 1.0正式文件林锐 200转载 2014-08-28 22:06:41 · 1197 阅读 · 0 评论 -
VC++6.0 MFC 下面最合适最简单的JSON类
cJSON简介:JSON(JavaScriptObject Notation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的JSO原创 2014-08-18 23:12:25 · 2231 阅读 · 0 评论 -
MFC进度条编程控制
1. 进度条的主要功能 进度条控制(Progress Control)主要用来进行数据读写、文件拷贝和磁盘格式等操作时的工作进度提示情况,如安装程序等,伴随工作进度的进展,进度条的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充。 进度条控制在MFC类库中的封装类为CProgressCtrl,通常仅作为输出类控制,所以其操作主要是设置进度条的范围和当前位置,并不断地更转载 2014-07-16 22:26:02 · 1265 阅读 · 0 评论 -
MFC单文档中生成序列类以及使用
一、MFC允许对象在程序运行的整个过程中持久化的串行化机制(1)串行化是指向持久化存储媒介(如一个磁盘文件)读或写对象的过程。(2)串行化用于在程序运行过程时或之后修复结构化数据(如C++类或结构)的状态。(3)MFC支持CObject类中的串行化,所以,所有继承于CObject的类可以利用CObject的串行化协议。(4)串行化的基本思想: a、对象必须能将翻译 2014-06-23 16:18:00 · 727 阅读 · 1 评论 -
MFC/VC 消息机制
VC中的消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。 控件通知消息,是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公共控件如树状视图、列表视图等。例如,单击或双击一个控件、在控件中选择部分文本、操作控件的滚动条都会产生通知消息。他类原创 2013-11-04 15:24:44 · 643 阅读 · 0 评论 -
MSDN Library资源链接 very good
http://207.46.16.248/zh-cn/library/default.aspx原创 2013-11-04 16:10:55 · 601 阅读 · 0 评论 -
VC++读写打开Excel文档数据
VC++读写打开Excel文档(代码备份)一:写Excel文档。 // 获取程序所在目录 GetCurrentDirectory(MAX_PATH,g_csPathBuff); //创建并写入Excel文件 CDatabase database; char *sDriver = "MICROSOFT EXCEL原创 2013-11-18 17:38:51 · 1931 阅读 · 0 评论 -
MFC/VC中利用ADO调用存储查询、保存的操作
1、在“stdafx.h”中加上下面语句:应用ADO库#import"C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace\ rename("EOF" ,"adoEOF") rename("BOF","adoBOF")2、在程序的头文件(*.h文件)定义万能指针 _ConnectionP原创 2013-11-04 16:01:27 · 714 阅读 · 0 评论 -
VC中操作excel表格
使用Microsoft Office所带的控件来实现代码操作excel表格。 最近由于工作需要,不得不操作Excel,包括基本的数据输入输出、字体设置、颜色设置、单元格的合并、填充色的设置,当然还包括图表的生成以及渐近线的操作等。折腾了许久,项目终于完成了^_^。现在将学习操作Excel的点点滴滴记录下来和大家一同分享,也作为自己的一次总结。 1、Excel的对象模型(转载 2013-12-30 14:18:47 · 640 阅读 · 0 评论 -
const 总结——定义常量、函数的使用
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码原创 2013-11-21 11:26:50 · 2821 阅读 · 0 评论 -
如何在Release状态下进行调试
1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Link标签中选Generatedebu复选框。注:只是一个介乎Debug和Relea原创 2013-11-04 15:04:51 · 2912 阅读 · 0 评论 -
MFC/VC++中操作XML(MFC、SDK)解析
VC++中操作XML(MFC、SDK) XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini。VC++里操作XML有两个库可以用:MSXML和XmlLite。MSXML又细分了两种接口:DOM和SAX2。XP没自带有XmlLite,只自带有2.x、3.x版的MSXML,不支持SAX2(需要MSXML 4原创 2013-11-04 15:14:28 · 2748 阅读 · 1 评论 -
C++ 指针与引用
引用是C++中的概念,初学者容易把引用和指针混淆一起。 一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int &n = m; n相当于m的别名(绰号),对n的任何操作就是对m的操作。 所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。 引用的规则: (1)引用被创建的同时必须被初始化(指针则可以原创 2013-11-14 14:44:21 · 419 阅读 · 0 评论 -
PHP filter_input() 详解
以往,对于常见的SQL注入等漏洞,采取的方式一般都是对数据进行过滤,而对GET/_POST/COOKIE/_SERVER等全局数组变量的直接使用是不够安全的,故PHP 5.2.0版本以后,推出Filter系列函数,对外部脚本的数据进行过滤,比如POST表单中的email邮箱进行验证,则将$filter参数设置为FILTER_VALIDATE_EMAIL即可。函数名:filter_inp原创 2014-05-13 09:02:43 · 1232 阅读 · 0 评论 -
string,CString,char之间的转化
int 转 CString:CString.Format("%d",int);...............................string 转 CString CString.format("%s", string.c_str()); 用c_str()确实比data()要好. .......................................cha原创 2013-11-04 15:03:37 · 543 阅读 · 0 评论 -
static_cast 与reinterpret_cast
static_cast 与reinterpret_caststatic_cast用法:static_cast ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)翻译 2013-12-18 11:37:19 · 442 阅读 · 0 评论 -
C++ Builder 学习网址
http://blog.csdn.net/luoshupeng/article/category/552231原创 2013-11-13 14:07:11 · 597 阅读 · 0 评论 -
sock 服务器与客户端编程
一、基于TCP的socket编程服务器端程序:1)创建套接字(socket)。此系统调用的实际效果是,请求操作系统把网络通信所需要的一些系统资源(存储器空间、CPU时间、网络宽带等)分配给该应用进程。2)将套接字绑定到一个本地地址和端口上(bind)。3)将套接字设为监听模式,准备接收客户请求(listen)。4)等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对翻译 2014-06-23 17:39:41 · 1070 阅读 · 0 评论 -
git使用详细介绍
git使用详细介绍 1. Git概念 1.1. Git库中由三部分组成 Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。 1) 工作目录:用户本地的目录; 2) Index(索引):将工作目录下所有文件(包含子目录)生成转载 2013-11-11 11:55:34 · 675 阅读 · 0 评论