
c++
文章平均质量分 81
m_ii_m
这个作者很懒,什么都没留下…
展开
-
protobuf repeated类型的使用
protobuf是Google开发的一个序列化框架,类似XML,JSON,基于二进制,比传统的XML表示同样一段内容要短小得多。通过protobuf,可以很轻松的调用相关方法来完成业务数据的序列化与反序列化。protobuf repeated类型相当于std的vector,可以用来存放N个相同类型的内容,文章将简单介绍protobuf repeated的使用。首先定义一个protobuf结转载 2015-12-08 15:38:29 · 2740 阅读 · 0 评论 -
第八讲 MFC的进程和线程
第八讲 MFC的进程和线程Win32的进程和线程概念进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程。线程是操作系统分时调度分配CPU时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部分代码被另一个线程并转载 2014-03-26 23:12:04 · 1762 阅读 · 0 评论 -
第五讲 MFC对象的创建
第五讲 MFC对象的创建前面几章介绍了MFC的核心概念和思想,即介绍了MFC对Windows对象的封装方法和特点;MFC对象的动态创建、序列化;MFC消息映射机制。现在,考查MFC的应用程序结构体系,即以文档-视为核心的编程模式。学习本章,应该弄清楚以下问题:MFC中诸多MFC对象的关系:应用程序对象,文档对象,边框窗口对象,文档边框窗口对象,视对象,文档模板对象等。MFC对象转载 2014-03-26 23:07:13 · 1893 阅读 · 0 评论 -
第二讲MFC和Win32
第二讲MFC和Win32MFC Object和Windows Object的关系MFC中最重要的封装是对Win32 API的封装,因此,理解Windows Object和MFC Object (C++对象,一个C++类的实例)之间的关系是理解MFC的关键之一。所谓Windows Object(Windows对象)是Win32下用句柄表示的Windows操作系统对象;所谓转载 2014-03-26 23:03:05 · 749 阅读 · 0 评论 -
第十四讲 SOCKET类的设计和实现
第十四讲 SOCKET类的设计和实现WinSock基本知识这里不打算系统地介绍socket或者WinSock的知识。首先介绍WinSock API函数,讲解阻塞/非阻塞的概念;然后介绍socket的使用。WinSock APISocket接口是网络编程(通常是TCP/IP协议,也可以是其他协议)的API。最早的Socket接口是Berkeley接口,在U转载 2014-03-26 23:21:00 · 809 阅读 · 0 评论 -
第十三讲 MFC工具条和状态栏
第十三讲 MFC工具条和状态栏Windows控制窗口Windows (Windows95或者以上版本) 提供了系列通用控制窗口,其中包括工具条(ToolBar)、状态栏(StatusBar)、工具条提示窗口(ToolTip)。Windows在一个DLL加载时注册个控制窗口的“窗口类”。例如,工具条的“窗口类”是“ToolbarWindow32”,状态栏的“窗口类转载 2014-03-26 23:18:58 · 2104 阅读 · 0 评论 -
第七讲 MFC的DLL
第七讲 MFC的DLL一般的,在介绍Windows编程的书中讲述DLL的有关知识较多,而介绍MFC的书则比较少地提到。即使使用MFC来编写动态链接库,对于初步接触DLL的程序员来说,了解DLL的背景知识是必要的。另外,MFC提供了新的手段来帮助编写DLL程序。所以,本节先简洁的介绍有关概念。DLL的背景知识静态链接和动态链接当前链接的目标代码转载 2014-03-26 23:11:13 · 591 阅读 · 0 评论 -
第十二讲 对话框和对话框类CDialog
第十二讲 对话框和对话框类CDialog对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便地进行编辑的。模式和无模式对话框对话框分两种类型,模式对话框和无模式对话框。模式对话框一个模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框时指定WS_POPUP, WS_SYSMENU, WS_CAPTION和转载 2014-03-26 23:17:48 · 1122 阅读 · 0 评论 -
第六讲 应用程序的退出
第六讲 应用程序的退出一个Windows应用程序启动之后,一般是进入消息循环,等待或者处理用户的输入,直到用户关闭应用程序窗口,退出应用程序为止。例如,用户按主窗口的关闭按钮,或者选择执行系统菜单“关闭”,或者从“文件”菜单选择执行“退出”,都会导致主窗口被关闭。当用户从“文件”菜单选择执行“退出”时,将发送MFC标准命令消息ID_APP_EXIT。MFC实现了函数CWinApp:转载 2014-03-26 23:08:00 · 1104 阅读 · 0 评论 -
第三讲 CObject类
第三讲 CObject类CObject是大多数MFC类的根类或基类。CObject类有很多有用的特性:对运行时类信息的支持,对动态创建的支持,对串行化的支持,对象诊断输出,等等。MFC从CObject派生出许多类,具备其中的一个或者多个特性。程序员也可以从CObject类派生出自己的类,利用CObject类的这些特性。本章将讨论MFC如何设计CObject类的这些特性。首先,考察COb转载 2014-03-26 23:04:22 · 930 阅读 · 0 评论 -
sscanf的用法
这里有些sscanf()的一些使用说明,都是从论坛,Blog里整理出来的。供大家使用。 通过学习和使用个人认为,在字符串格式不是很复杂,但是也并不简单的时候用这个函数比较合适,这个尺度就要靠自己把握了,字符串不是很复杂,但自己写个处理的函数比较麻烦,效率也不高,就用这个函数,如果字符串很复杂,那就用正则表达式吧。不多说了,看看下面这些介绍和列子吧!名称:sscanf() - 从一个转载 2014-05-08 09:29:37 · 609 阅读 · 0 评论 -
运算符优先级和关联性
C++ 语言包括所有 C 运算符并添加多个新的运算符。 运算符指定对下列项之一执行计算:一个操作数(一元运算符)两个操作数(二元运算符)三个操作数(三元运算符)运算符遵循严格的优先级,该优先级定义了包含这些运算符的表达式的计算顺序。 运算符与其左侧或右侧的表达式关联;这称为“关联性”。下表显示 C++ 运算符的优先级和关联性(从最高优先级原创 2014-04-10 21:47:52 · 1602 阅读 · 0 评论 -
VC线程同步方法总结
VC线程同步方法总结:有四种同步方法:互斥体(Mutex),事件(Event),临界区(Critical Section),以及信号量(Semaphore)。注:以下所说的“全局变量”也可换为局部变量,只要各线程(包括主线程)能访问即可。1、使用Mutex定义全局变量HANDLE hMutex;在主线程中调用hMutex = CreateMutex(NULL, FALS转载 2014-05-19 09:05:10 · 724 阅读 · 0 评论 -
vc 注册表编程
注册表编程下,用不同的方法实现对其的读取与写入: API:创建步骤:创建键RegCreateKey()或RegCreateKeyEx(),打开键RegOpenKey()或RegOpenKeyEx(),写入注册表RegSetvalue()或是RegSetvalue(),关闭RegCloseKey ()读取步骤 打开键RegOpenKey()或RegOpenKeyEx(),读取转载 2014-06-04 22:47:41 · 825 阅读 · 0 评论 -
玩转Protocol Buffers
Protocol Buffers1. 人人都爱Protocol Buffers1.1 Protocol Buffers(PB)是什么?Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serial转载 2015-12-08 14:02:59 · 2022 阅读 · 0 评论 -
Linux下C++的通用Makefile与解析
本文给出万能Makefile的具体实现,以及对其中的关键点进行解析。所谓C++万能Makefile,即可编译链接所有的C++程序,而只需作很少的修改。号称万能Makefile,一统江湖。我对原版的Makefile做了些修改。首先揭开它的庐山真面目:##################################################### Generic makef转载 2015-03-30 22:52:21 · 394 阅读 · 0 评论 -
关于configure和Makefile
makefile脚本compiler程序开发linux编译器转篇文章,讲的不是很清楚,再附上几个资料连接,来自http://www.linuxdw.com/?q=node/77要获得更多资料,请访问 dede。关于 创建自动的配置脚本 有非常详细的参考资料。GNU.org 给出了如何 编写 configure.ac 和 创建 dede< 脚本 的建议。访问 GN转载 2015-03-30 23:09:11 · 571 阅读 · 0 评论 -
程序员必知的10大基础实用算法
算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide and conq转载 2014-06-20 13:40:11 · 784 阅读 · 0 评论 -
就是这么“高大上”!20个最受欢迎的Linux命令
本文根据commandlinefu网站的历史排名,筛选出了前20个得票最高的Linux命令。看看你都能熟练使用了吗?本文根据commandlinefu网站的历史排名,筛选出了前20个得票最高的Linux命令。看看你都能熟练使用了吗? 1. 以 root 帐户执行上一条命令sudo !!2. 利用 Python 搭建一个简单的 Web 服务器,可通过 htt转载 2014-05-28 21:50:18 · 1106 阅读 · 0 评论 -
TCP 的那些事儿(下)
这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计转载 2014-05-28 21:43:01 · 983 阅读 · 0 评论 -
TCP 的那些事儿(上)
TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相原创 2014-05-28 21:39:37 · 922 阅读 · 0 评论 -
多线程--线程同步
线程的同步Critical section(临界区)用来实现“排他性占有”。适用范围是单一进程的各线程之间。它是:· 一个局部性对象,不是一个核心对象。· 快速而有效率。· 不能够同时有一个以上的critical section被等待。· 无法侦测是否已被某个线程放弃。Mutex转载 2014-06-08 14:58:10 · 884 阅读 · 0 评论 -
INI文件格式及其读写
ini文件(Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。1. 把信息写入系统的win.ini文件[cpp] view转载 2014-06-06 22:14:13 · 1104 阅读 · 0 评论 -
有关注册表API函数
注册表的操作,API为我们提供了大约25个函数。他提供了对注册表的读取,写入,删除,以及打开注册表及键值时所有函数,并且可以达到对注册表的备份,连接和对远端注册表进行查看等等。注册表对整个系统十分重要,你在进行操作时,一定要先考虑清楚。这些函数有: RegCloseKey RegConnectRegistry RegCreateKey RegCreateKeyEx RegDeleteKe转载 2014-06-04 22:49:25 · 705 阅读 · 0 评论 -
第十一讲 MFC下的文件类
第十一讲 MFC下的文件类文件操作的方法使用Visual C++编程,有如下方法进行文件操作:(1)使用标准C运行库函数,包括fopen、fclose、fseek等。(2)使用Win16下的文件和目录操作函数,如lopen、lclose、lseek等。不过,在Win32下,这些函数主要是为了和Win16向后兼容。(3)使用Win32下的文件和目录操作函数,如Cr转载 2014-03-26 23:16:49 · 750 阅读 · 0 评论 -
第九讲 MFC的状态
第九讲 MFC的状态MFC定义了多种状态信息,这里要介绍的是模块状态、进程状态、线程状态。这些状态可以组合在一起,例如MFC句柄映射就是模块和线程局部有效的,属于模块-线程状态的一部分。模块状态这里模块的含义是:一个可执行的程序或者一个使用MFC DLL的DLL,比如一个OLE控件就是一个模块。一个应用程序的每一个模块都有一个状态,模块状态包括这样一些信息:用来加载转载 2014-03-26 23:15:41 · 1111 阅读 · 0 评论 -
第十讲 内存分配方式和调试机制
第十讲 内存分配方式和调试机制M内存分配内存分配函数MFCWin32或者C语言的内存分配API,有四种内存分配API可供使用。Win32的堆分配函数每一个进程都可以使用堆分配函数创建一个私有的堆──调用进程地址空间的一个或者多个页面。DLL创建的私有堆必定在调用DLL的进程的地址空间内,只能被调用进程访问。HeapCrea转载 2014-03-26 23:13:50 · 707 阅读 · 0 评论 -
嵌入式系统及如何开发自己的嵌入式系统
嵌入式系统及如何开发自己的嵌入式系统多数Linux系统是在PC平台上运行,然而Linux作为嵌入式系统也是非常稳定的。本文描绘了一个嵌入式系统的概览,并展示嵌入式系统产品是如何使用Linux的。 嵌入式系统比摩西还老的故事 电脑用于控制设备或嵌入系统的历史几乎电脑自身的历史一样长。在通讯领域,六十年代晚期,电脑被用于电子电话交换机,称为“存储程序控制”系统。转载 2013-08-21 00:55:42 · 1516 阅读 · 0 评论 -
小提醒Linux用户非常热衷的嵌入式系统
Small reminder for Linux user very keen of embedded system.We will detail the design of a cross-toolchain "From Scratch".The purpose of this webpage is to understand the design method of a cross-t转载 2013-08-21 00:54:15 · 1896 阅读 · 0 评论 -
如何为嵌入式开发建立交叉编译环境
随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。在裁减和定制Linux,运用于你的嵌入式系统之前,由于一般嵌入式开发系统存储大小有限,通常你都要在你的强大的pc机上建立一个用于目标机的交叉编译环境。这是一个由编译器、连接器和解释器组成的综合开发环境。交叉编译工具主要由 binutils、gcc 和 glibc转载 2013-08-21 00:14:17 · 874 阅读 · 0 评论 -
Windows静态库和动态库的创建和使用
静态链接库(Static Libary)偶们用VS2005做一个静态链接库先打开VS2005,新建à项目(staticCai)àWin32控制台应用程序新建static_lib.h 和static_lib.cpp 两个文件,这两个文件的内容如下:static_lib.h: int add(int x,int y);int substract(int x转载 2013-08-20 22:38:51 · 667 阅读 · 0 评论 -
创建静态库和动态库(总结)
Linux创建静态库和动态库第1步:编辑得到举例的程序--hello.h、hello.c和main.c;hello.h为该函数库的头文件。hello.c是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello XXX!"。main.c为测试库文件的主程序,在主程序中调用了公用函数hello。 第2步:将hello.c编译成.o文件;转载 2013-08-20 22:32:52 · 944 阅读 · 0 评论 -
Eclipse 平台进行 C/C++ 开发
Eclipse 平台进行 C/C++ 开发简介: 我们将概述如何在 C/C++ 开发项目中使用 Eclipse 平台。尽管 Eclipse 主要是一个 Java 开发环境,但其体系结构确保了对其它编程语言的支持。在本文中,您将学习如何使用 C/C++ 开发工具箱(C/C++ Development Toolkit,CDT),它是可用于 Eclipse 的最佳 C/C++ 工具箱。转载 2013-08-21 00:58:50 · 3083 阅读 · 0 评论 -
Linux平台静态接库与动态链接库的创建和使用
一、首先了解一下什么是“库x”? 库的本质是一个或者一堆可执行的二进制文件集,可以被载入内存中执行。使用“ar”命令可以列出该库中包含的各“模块”,由此我们可以看出C的模块化编程思想,在库中有体现。使用 ar -t可以看到:libutil.a 这个静态链接库里包含有6个.o文件。二、库的种类有哪些? 库还分有静态链接库和动转载 2013-08-21 00:49:32 · 1816 阅读 · 0 评论 -
C/C++ 直接使用动态库 dlopen
C/C++ 直接使用动态库 dlopen把各个版本编译成动态库,××。so ,提供统一的接口进行调用。这里使用的工具是dlxx系列函数 dlopen void *dlopen(const char *filename, int flag); 装载动态库 dlcloseint dlclose(void *handle); dlerrorchar *dlerr转载 2013-08-20 22:44:00 · 7558 阅读 · 0 评论 -
如何生成一个集成库并且实现对库的管理
如何生成一个集成库并且实现对库的管理如何在Altium Designer的Protel中创建用户自己的板级设计器件集成库?在Altium Designer的Protel中引入了器件集成库的模式,大大方便了用户在板级设计中调用器件的功能。2004版中的集成库包括器件原理图库、器件封装库、Spice混合信号仿真模型库及IBIS信号完整性分析模型库。一,如何在现有的集成库中完成器转载 2013-08-21 00:51:36 · 6523 阅读 · 0 评论 -
嵌入式Linux实战篇--交叉编译环境的建立(基于ubuntu 8.10)
在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。本文具体说明了嵌入式交叉编译环境的建立过程和具体的操作步骤,希望能够对各位朋友搭建对应的交叉编译环境有所帮助。一、所需软硬件环境■ 主机环境建立交叉编译工具链的主机环境:Ubuntu 8.10,gcc-4.3.2■ Ubuntu 8.10软件环境保证转载 2013-08-21 00:50:36 · 1025 阅读 · 0 评论 -
学习C语言的教材、如何成为一名优秀的C程序员、激发程序员创意的6本书、国外程序员推荐:每个程序员都应读的书
学习C语言的教材我的C语言是自学的,这些年看过不少教材。下面,我对其中一些教材做个点评。1. How to Think Like a Computer Scientist: C version这是我读过最易懂的C语言教材。虽然它只讲解最基本的语法,但是写得特别好懂,深入浅出,读起来不觉得累,而且它还允许免费下载。我认为,这是C语言的首选入门教材。下载转载 2013-08-22 23:04:51 · 10135 阅读 · 2 评论 -
Visual Studio 2010项目中引用Lib静态库
Openssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。首先下载Openssl包:(http://www.openssl.org/),这是一个C语言类库包,在Windows下可以通过Perl对该类库包进行MakeBuild,产生libeay32、ssleay32的Lib以及Dll文转载 2013-12-18 15:24:11 · 3838 阅读 · 0 评论 -
vi/vim的配置文件
"在当前目录下,配置文件.vimrc,将下面内容粘贴在文件中(配置文件仅当前用户有效)"=========================================================================" DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console" ""=======原创 2014-02-09 14:31:42 · 587 阅读 · 0 评论