![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++/vc++
文章平均质量分 75
没有开花的树
这个作者很懒,什么都没留下…
展开
-
游戏平台账号认证网关的实现
账号认证网关,指的是对外提供账号认证服务的应用接口。本质上是一个进程,基于某种特定协议(如HTTP协议),接收账号认证请求,通过查询账号数据库验证账号是否正确,然后返回验证结果。写这篇文章,主要是继续补充“游戏平台架构 账号篇”的内容。如果到这里还看不明白的童鞋不妨先看看前面写的这篇文章。账号认证网关的实现,主要有以下几个技术点:1、 作为服务端进程,接收并处理请求2、 长连接数据原创 2013-08-21 00:10:32 · 2802 阅读 · 0 评论 -
解决protobuf数据丢失bug
protobuf是Google开发的一个开源序列化框架,类似XML,JSON,其最大的特点是基于二进制,比传统的XML表示同样一段内容要短小得多。通过protobuf,可以很轻松的调用相关方法来完成业务数据的序列化与反序列化。但是,protobuf在使用当中也发现一些问题,数据在protobuf序列化后无法反序列化,或者丢失部分数据,这就与protobuf的目的违背。文章将讨论和解决这个protobuf bug问题原创 2014-02-21 22:06:16 · 12509 阅读 · 6 评论 -
VC编写COM组件提供PHP调用
最近项目需要PHP来解析二进制数据,如果直接PHP做比较麻烦,就想到VC编写COM组件来做,提供PHP调用。文章将介绍VC编写COM组件提供PHP调用,实现一个计算两个数字相加的功能。原创 2014-03-29 00:10:37 · 3916 阅读 · 0 评论 -
C++ 简单实现HTTP GET/POST 请求
HTTP(超文本传输协议)是一种客户端与服务端的传输协议,最早用于浏览器和服务器之间的通信,后来因为其使用灵活、方便等特点,广泛用于客户端与服务端的通信。文章将简单介绍HTTP协议,同时以C++方式分别实现HTTP GET、POST 请求原创 2013-11-15 18:38:54 · 39779 阅读 · 6 评论 -
Erlang与C构建的节点通讯
Erlang节点通讯,主要是Erlang节点与Erlang节点之间的通讯,但Erlang同时支持erlang与java构建的节点通讯,还支持Erlang与c构建的节点通讯,前面两种方式在以前的文章都可以找到,所以这里讲Erlang与c构建的节点通讯。原创 2014-11-06 00:25:37 · 3087 阅读 · 6 评论 -
C/C++ 数组下标可以是负值
我们知道,数组的第一个元素下标是 0。数组的范围也就是从 array[0] 到 array[size – 1]。 但实际上 c/c++ 支持正负下标。 负下标必须在数组边界内;否则结果不可预知。文章简单以例子说明数组负下标的使用。原创 2015-02-01 20:02:19 · 15471 阅读 · 6 评论 -
C/C++ 实现函数回调
C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样。利用函数指针,就可以实现函数注册和回调,文章将以例子做介绍原创 2013-07-14 23:48:10 · 2021 阅读 · 0 评论 -
C++ stderr/stdout 重定向到文件
通常,stderr和stdout被用来输出内容显示到控制台,但是,有时候我们需要把这些信息写到指定的文件,方便随时查阅。最简单的实现方式就是,把 stderr/stdout 的输出重定向到文件。文章先说明C/C++如何重定向 stderr/stdout 到文件,同时也说明stderr与stdout的主要区别,以及如何转变stderr /stdout 的缓冲类型。原创 2015-06-21 03:05:54 · 19567 阅读 · 1 评论 -
skynet项目lua代码简单加密
skynet总体跟 erlang很像,理念都是基于Actor模型,即万物皆Actor,Actor之间通过发送消息进行通信。不同的是,skynet使用 c 和 lua实现,这两个语言相较erlang比较流行。skynet的Actor是指skynet服务,skynet服务类似erlang进程,调度方式也接近,skynet启动时会初始化多个调度线程,用于同时处理多个服务,每个服务都有一定的调度次数约束,挂起或达到约束就失去调度权。文章利用lua编译成二进制实现加密,方法比较简单。原创 2015-08-13 01:19:34 · 10311 阅读 · 27 评论 -
Windows下编译和使用SQLite数据库
SQLite,是一款轻型的数据库,它只占用极少的资源,支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 C++、C#、PHP、Java等。本篇主要讲述如何在Windows下编译和使用SQLite数据库。原创 2013-11-12 21:12:38 · 6686 阅读 · 0 评论 -
linux获取后台进程的控制台数据
linux提供了一个daemon函数,使得进程可以脱离控制台运行,实现了后台运行的效果。但是进程后台运行后,原本在终端控制台输出的数据就看不到了。那么,怎样才能找回这些数据?文章主题就围绕着如何获得后台进程的控制台数据,分析daemon原理和例子演示说明,最后也写个自动化数据获取的小工具。原创 2016-01-08 12:18:16 · 9207 阅读 · 4 评论 -
apache模块 合并多个js/css 提高网页加载速度
现在的网站表现力越来越丰富,页面加载的js和css自然也越来越多。当网站页面上的js和css太多,浏览器打开页面的速度就会很慢,明显降低了用户的体验。使用mod_concatx, 可以合并多个文件在一个http响应报文中,可以有效提高js/css的加载速度。原创 2013-07-17 22:43:18 · 8669 阅读 · 54 评论 -
C++ regex 正则表达式的使用
在c++中,有三种正则可以选择使用,C ++regex,C regex,boost regex ,如果在windows下开发c++,默认不支持后面两种正则,如果想快速应用,显然C++ regex 比较方便使用。文章将讨论C++ regex 正则表达式的使用。原创 2014-02-09 19:32:01 · 76668 阅读 · 7 评论 -
c++根据结构体成员指针找到结构体指针
使用宏CONTAINING_RECORD,可以直接根据结构体成员指针找到结构体指针。为什么这样就能得到结构体指针?这个得益于结构体在申请内存空间是一段连续的地址,我们可以通过其中某个成员变量的地址,减去该成员的偏移来得到该成员所在结构体的指针。原创 2013-07-17 23:54:00 · 3701 阅读 · 0 评论 -
erlang 实现与 c++ 通讯
网络通讯常用的有2种:文本通讯和二进制通讯。行通讯是一种文本通讯,格式如“cmd args\n”,比较简单,erlang接收数据也比较简单,可以设置参数{packet, line},缺点是表示方式单一,很难表示结构数据。包体通讯是二进制通讯,目前主要有结构体,json,asn等等。文章分别在两种方式上实现erlang与c++通讯。原创 2013-10-19 00:20:03 · 3994 阅读 · 0 评论 -
C/C++ 分割字符串的多种方式
在C/C++中, strtok被用来拆分字符串,但是如何二次拆分字符串,比如说分解GET参数?这时候就需要使用strtok的线程安全版本strtok_s,那么如何利用strtok_s来实现二次分解字符串。还有一个函数strstr同样可以用来分割字符串,文章将对此分别做说明。原创 2013-11-09 16:20:40 · 20131 阅读 · 1 评论 -
VC++以DLL方式加载和使用SQLite数据库
SQLite是一款轻型的本地数据库,使用时只占用极少的资源,支持Windows/Linux等主流系统,能同时跟很多程序语言结合,例如 C++、C#、PHP、Java等等。本篇主要讲述如何在Windows下以DLL方式加载和使用SQLite数据库原创 2013-11-15 22:34:28 · 5732 阅读 · 0 评论 -
VC++ 窗体开发必须掌握的技巧
文章介绍VC++开发Win32窗体一些必须掌握的技巧,比如判断窗体是否存在,判断窗体是否最大化、最小化,禁止窗体最大化以及屏蔽win7拖拽放大效果,将窗体移到最前面,并激活窗体,获取键盘操作,将窗体置顶和取消置顶,如何发送窗体消息,窗体如何居中等等原创 2013-11-13 22:07:23 · 2911 阅读 · 0 评论 -
基于TCP的socket通信过程及例子
Socket也叫套接字,用来实现网络通讯,通过调用系统提供的API,可以和远程的机子传输数据。Socket有很多种协议,而这篇文章主要讨论TCP部分的内容,文章主要从socket的阻塞模式和非阻塞模式的比较,TCP和UDP的比较来阐述,还以例子说明服务端与客户端的通讯过程原创 2013-12-02 20:21:08 · 4520 阅读 · 2 评论 -
Win32 API 实现系统托盘程序
托盘程序就是运行在Windows系统托盘的程序,就是在桌面右下角的显示区域的一个小图标。通常托盘程序带有几种功能:托盘菜单,托盘图标,气泡提示,托盘提示。例如QQ收到消息后,会在系统右下角显示闪动QQ图标。原创 2013-11-05 17:53:29 · 9536 阅读 · 1 评论 -
浅谈C++的类型转换
C++是强类型语言,也就是说,变量在使用前就要声明数据类型,不同数据类型分配的内存空间大小也是不同,在转换类型时要注意这个问题,防止数据丢失或越界溢出。文章将简单讨论一下C++的类型转换,分别说明隐式转换和显式转换,C++标准转换运算符dynamic_cast, reinterpret_cast, static_cast, const_cast原创 2013-12-14 11:02:06 · 1989 阅读 · 0 评论 -
Windows下使用NIF扩展Erlang方法
在Erlang中,NIF(Native Implemented Function)被用来扩展erlang的某些功能,一般用来实现一些erlang很难实现的,或者一些erlang实现效率不高的功能。NIF使用C开发,效率和C接近,比纯erlang实现要高。NIF会编译成动态库,直接动态加载到erlang进程空间调用,也是erlang扩展新方法最高效的做法。原创 2014-01-02 19:48:41 · 5234 阅读 · 17 评论 -
Windows下VC++使用protobuf
Protocol Buffers(protobuf)是Google提供的一个开源序列化框架,类似XML,JSON,其最大的特点是基于二进制,比传统的XML表示同样一段内容要短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持c++、java、python等语言环境。文章将说明如何在windows下VC++使用protobuf原创 2014-01-05 12:50:04 · 6857 阅读 · 5 评论