
C/C++技术与应用
文章平均质量分 69
集中探讨C/C++技术相关内容
没有开花的树
这个作者很懒,什么都没留下…
展开
-
C++ stderr/stdout 重定向到文件
通常,stderr和stdout被用来输出内容显示到控制台,但是,有时候我们需要把这些信息写到指定的文件,方便随时查阅。最简单的实现方式就是,把 stderr/stdout 的输出重定向到文件。文章先说明C/C++如何重定向 stderr/stdout 到文件,同时也说明stderr与stdout的主要区别,以及如何转变stderr /stdout 的缓冲类型。原创 2015-06-21 03:05:54 · 19840 阅读 · 1 评论 -
VC编写COM组件提供PHP调用
最近项目需要PHP来解析二进制数据,如果直接PHP做比较麻烦,就想到VC编写COM组件来做,提供PHP调用。文章将介绍VC编写COM组件提供PHP调用,实现一个计算两个数字相加的功能。原创 2014-03-29 00:10:37 · 3976 阅读 · 0 评论 -
解决protobuf数据丢失bug
protobuf是Google开发的一个开源序列化框架,类似XML,JSON,其最大的特点是基于二进制,比传统的XML表示同样一段内容要短小得多。通过protobuf,可以很轻松的调用相关方法来完成业务数据的序列化与反序列化。但是,protobuf在使用当中也发现一些问题,数据在protobuf序列化后无法反序列化,或者丢失部分数据,这就与protobuf的目的违背。文章将讨论和解决这个protobuf bug问题原创 2014-02-21 22:06:16 · 12624 阅读 · 6 评论 -
Windows下VC++使用protobuf
Protocol Buffers(protobuf)是Google提供的一个开源序列化框架,类似XML,JSON,其最大的特点是基于二进制,比传统的XML表示同样一段内容要短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持c++、java、python等语言环境。文章将说明如何在windows下VC++使用protobuf原创 2014-01-05 12:50:04 · 6922 阅读 · 5 评论 -
基于TCP的socket通信过程及例子
Socket也叫套接字,用来实现网络通讯,通过调用系统提供的API,可以和远程的机子传输数据。Socket有很多种协议,而这篇文章主要讨论TCP部分的内容,文章主要从socket的阻塞模式和非阻塞模式的比较,TCP和UDP的比较来阐述,还以例子说明服务端与客户端的通讯过程原创 2013-12-02 20:21:08 · 4560 阅读 · 2 评论 -
C++ 简单实现HTTP GET/POST 请求
HTTP(超文本传输协议)是一种客户端与服务端的传输协议,最早用于浏览器和服务器之间的通信,后来因为其使用灵活、方便等特点,广泛用于客户端与服务端的通信。文章将简单介绍HTTP协议,同时以C++方式分别实现HTTP GET、POST 请求原创 2013-11-15 18:38:54 · 39884 阅读 · 6 评论 -
VC++ 窗体开发必须掌握的技巧
文章介绍VC++开发Win32窗体一些必须掌握的技巧,比如判断窗体是否存在,判断窗体是否最大化、最小化,禁止窗体最大化以及屏蔽win7拖拽放大效果,将窗体移到最前面,并激活窗体,获取键盘操作,将窗体置顶和取消置顶,如何发送窗体消息,窗体如何居中等等原创 2013-11-13 22:07:23 · 2960 阅读 · 0 评论 -
Windows下编译和使用SQLite数据库
SQLite,是一款轻型的数据库,它只占用极少的资源,支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 C++、C#、PHP、Java等。本篇主要讲述如何在Windows下编译和使用SQLite数据库。原创 2013-11-12 21:12:38 · 6772 阅读 · 0 评论 -
Win32 API 实现系统托盘程序
托盘程序就是运行在Windows系统托盘的程序,就是在桌面右下角的显示区域的一个小图标。通常托盘程序带有几种功能:托盘菜单,托盘图标,气泡提示,托盘提示。例如QQ收到消息后,会在系统右下角显示闪动QQ图标。原创 2013-11-05 17:53:29 · 9669 阅读 · 1 评论 -
erlang 实现与 c++ 通讯
网络通讯常用的有2种:文本通讯和二进制通讯。行通讯是一种文本通讯,格式如“cmd args\n”,比较简单,erlang接收数据也比较简单,可以设置参数{packet, line},缺点是表示方式单一,很难表示结构数据。包体通讯是二进制通讯,目前主要有结构体,json,asn等等。文章分别在两种方式上实现erlang与c++通讯。原创 2013-10-19 00:20:03 · 4058 阅读 · 0 评论 -
C/C++ 数组下标可以是负值
我们知道,数组的第一个元素下标是 0。数组的范围也就是从 array[0] 到 array[size – 1]。 但实际上 c/c++ 支持正负下标。 负下标必须在数组边界内;否则结果不可预知。文章简单以例子说明数组负下标的使用。原创 2015-02-01 20:02:19 · 15681 阅读 · 6 评论 -
C++ regex 正则表达式的使用
在c++中,有三种正则可以选择使用,C ++regex,C regex,boost regex ,如果在windows下开发c++,默认不支持后面两种正则,如果想快速应用,显然C++ regex 比较方便使用。文章将讨论C++ regex 正则表达式的使用。原创 2014-02-09 19:32:01 · 76919 阅读 · 7 评论 -
浅谈C++的类型转换
C++是强类型语言,也就是说,变量在使用前就要声明数据类型,不同数据类型分配的内存空间大小也是不同,在转换类型时要注意这个问题,防止数据丢失或越界溢出。文章将简单讨论一下C++的类型转换,分别说明隐式转换和显式转换,C++标准转换运算符dynamic_cast, reinterpret_cast, static_cast, const_cast原创 2013-12-14 11:02:06 · 2046 阅读 · 0 评论 -
C/C++ 分割字符串的多种方式
在C/C++中, strtok被用来拆分字符串,但是如何二次拆分字符串,比如说分解GET参数?这时候就需要使用strtok的线程安全版本strtok_s,那么如何利用strtok_s来实现二次分解字符串。还有一个函数strstr同样可以用来分割字符串,文章将对此分别做说明。原创 2013-11-09 16:20:40 · 20247 阅读 · 1 评论 -
c++根据结构体成员指针找到结构体指针
使用宏CONTAINING_RECORD,可以直接根据结构体成员指针找到结构体指针。为什么这样就能得到结构体指针?这个得益于结构体在申请内存空间是一段连续的地址,我们可以通过其中某个成员变量的地址,减去该成员的偏移来得到该成员所在结构体的指针。原创 2013-07-17 23:54:00 · 3758 阅读 · 0 评论 -
C/C++ 实现函数回调
C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样。利用函数指针,就可以实现函数注册和回调,文章将以例子做介绍原创 2013-07-14 23:48:10 · 2049 阅读 · 0 评论