自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (7)
  • 收藏
  • 关注

原创 利用共享内存实现进程间通信

进程间通信的方法很多,共享内存便是其中的一种,其原理就是把一块物理内存,映射到两个不同进程的虚拟地址空间,这样一个进程对此快内存的操作就能被另一个进程看到。windows下,使用共享内存有一下几个函数:CreateFileMapping:用于创建映射文件对象。OpenFileMapping:打开已存在的文件映射对象。MapViewOfFile:把文件映射对象转为可读写的void*

2015-06-20 15:50:59 2646

原创 利用并查集(Disjoint Set)解决一道算法题

一:并查集数据结构

2014-10-18 15:02:28 837

原创 对Google C++编程规范的理解和实践

1. #define保护 所有头文件都应该使用#define 防止头文件被多重包吨(multiple  inclusion),命名格式为:___H_  为保证唯一性,头文件的命名应基亍其所在项目源代码树的全路径。例如,项目foo 中的头文件foo/src/bar/baz.h按如下方式保护:  #ifndef FOO_BAR_BAZ_H_ #define FOO_

2014-09-09 21:03:55 1102

转载 lib 和 dll 的区别、生成以及使用详解

首先介绍一下静态库(静态链接库)、动态库(动态链接库)的概念,首先两者都是代码共享的方式。静态库:在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中,这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。即静态库中的指令都全部被直接包含在最终生成的 EXE 文件中了。在vs中新建生成静态库的工程,编译生成成功后,只产生一

2014-05-01 16:44:03 1199

转载 12个有趣的C语言问答

0. gets() 方法Q:以下代码有个被隐藏住的问题,你能找到它吗?A:这个不显眼的问题就是使用了 gets() 方法。此方法接受一个string类型参数,但是却没有检测此数值是否 有足够的空间来拷贝数据。所以这里我们一般用 fgets() 方法将来的更好。1234567891

2014-04-14 09:29:07 647

转载 C++输入cin详解

输入原理:程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入#1:#include using namespace std;int main(){

2014-04-08 19:10:58 801

原创 字符串全排列生成算法

全排列生成算法很多,常见的如字典序,递归等。本文使用的算法是基于递归的,算法如下:#include#include#includeusing namespace std;map elements;//用于存储要输入的前缀void permutation(string prefix, string str) { size_t n = str.length(); if (n

2014-03-27 20:13:00 844

原创 C++程序运行完后不让窗口一闪而过的方法

可能经常会遇到这样的情况,想要程序运行完后,窗口继续保留。VC或VS下常用的方法是在main函数退出前加一句:system(“pause”)这样的语句,但是这种做法有一个问题就是:在这样的情况下,其实程序并没有真正结束。也就是说main()函数并没有执行完。假设要看一下析构函数的自动调用,就看不到了。比如下面的例子#include#includeusing namespace std;

2014-03-19 14:04:45 33219 3

转载 C++应用程序在Windows下的编译、链接(四)动态链接

4动态链接4.1概述在静态链接阶段,链接器为PE文件生成了导入表,导出表,符号表,并调整了Call指令后面的操作数,在程序调用的时候,能够直接地或者间接地定位到IAT中的某个位置,在PE文件中,该位置包含符号的名称,当PE文件加载到内存以后,该位置应该修正为符号的地址。这些已有的信息和已经完成的工作是后续动态链接的基础。动态链接的任务是:在程序的加载或者运行阶段,执行各个模

2014-03-16 09:58:07 1052

转载 C++应用程序在Windows下的编译、链接:第三部分 静态链接(二)

3.5.2动态链接库的创建3.5.2.1动态链接库的创建流程动态链接库的创建流程如下图所示: 在系统设计阶段,主要的设计内容包括:类结构的设计以及功能类之间的关系,动态链接库的接口。在动态链接库中,包含两类函数:一类是内部函数,一类是外部函数。内部函数只能在动态链接库的内部使用,不能被动态链接库以外的模块调用;外部函数是该动态链接库的接口,可以被外部模块调用。

2014-03-16 09:56:02 1466

转载 C++应用程序在Windows下的编译、链接:第三部分 静态链接(一)

大家好,下面开始静态链接部分的工作原理分析,由于这部分内容太多了,我计划分2个部分发出,先看下这部分的大纲:3静态链接3.1概述编译器的任务是将每一个包含C++代码的源文件编译成包含二进制机器码的目标文件。由于在一个源文件中可能会调用到其它文件中的代码或数据,这些代码或者数据可能来自于静态库中,也可能来自于动态链接库中,也可能来自于其他的源文件中。在编译阶段,编译器

2014-03-16 09:53:33 877

转载 C++应用程序在Windows下的编译、链接:第二部分COFF/PE文件结构

2.1概述在windows操作系统下,可执行文件的存储格式是PE格式;在Linux操作系统下,可执行文件的存储格式的WLF格式。它们都是COFF格式文件的变种,都是从COFF格式的文件演化而来的。在windows平台下,目标文件(.obj),静态库文件(.lib)使用COFF格式存储;而可执行文件(.exe),动态链接库文件(.dll)使用PE格式存储。静态库文件其实就是一堆目标文件的集合

2014-03-16 09:52:27 1517

转载 C++应用程序在Windows下的编译、链接:第一部分 概述

本文是对C++应用程序在Windows下的编译、链接的深入理解和分析,文章的目录如下:        我们先看第一章概述部分。1概述1.1编译工具简介cl.exe是windows平台下的编译器,link.exe是Windows平台下的链接器,C++源代码在使用它们编译、链接后,生成的可执行文件能够在windows操作系统下运行。cl.exe和link.exe

2014-03-16 09:48:33 1315

转载 生成exe文件,使C++程序脱离VS环境运行的方法

其实方法非常简单:在工具栏找到默认值为“Debug”的下拉菜单,将“Debug”改成“Release”,如图:然后重建该解决方案,就会在该解决方案目录下生成一个“Release”文件夹,如图:其中的Demo.exe文件就是想要的文件。另外一个文件Demo.pdb用于记录调试信息,可以删除这个文件。另外,在main函数的最后加入“system(“pause”);”可使程序

2014-03-04 20:13:41 15954 1

转载 10 Easy Steps to a Complete Understanding of SQL

10 Easy Steps to a Complete Understanding of SQLToo many programmers think SQL is a bit of a beast. It is one of the few declarative languages out there, and as such, behaves in an entirely di

2014-01-16 13:10:12 2260

转载 8 个免费实用的 C++ GUI 库

C++ is a multi paradigm, free form complied, general purpose and thus a very powerful language used basically for the purpose of programming. This language is regarded as an intermediate level languag

2014-01-07 09:43:47 1885

转载 编程面试的10大算法概念汇总

以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。本文将从Java的角度看问题,包含下面的这些概念:1. 字符串2. 链表3. 树4. 图5. 排序6. 递归 vs. 迭代7. 动态规划8. 位操作9. 概率问题10. 排列组合1. 字符串

2013-12-02 20:30:22 658

原创 中国剩余定理在信息领域的应用

写这边博文是听了台湾张真诚老师的一次讲座,感觉比较有趣。回来后自己查查资料加总结一点就想写下来,坚信好记性不如烂笔头,何况我记性比较差......中国剩余定理(Chinese Reminder Thereom)中国剩余定理是数论中的一个关于一元线性同余方程组的定理,说明了一元线性同余方程组有解的准则以及求解方法。也称为孙子定理,古有“韩信点兵”、“孙子定理”、求一术(宋 沈括)“鬼谷算”(

2013-11-25 21:19:37 3916

原创 读《Pragmatic Thinking and Learning》笔记及摘录

作为一名程序员,就意味着要不断地学习,《Pragmatic Thinking and Learning 》(程序员的思维修炼)这本书是美国Andy Hunt 所著。这本书给出了帮助程序员如何学习及思考的许多非常有用的Tips,在技能获取方面,其实这些都是通用的。看完此书之后最大的一个感受就是非常的舒畅,写的朴素,实在,没有吹嘘。只是把作者的经验,发现,以及知识分享给了读者,读完之后受益匪浅,想把一

2013-11-20 22:25:13 1237

原创 WEB服务及实现(二)

一、如何实现WEB服务WEB服务是实现分布式系统的一种技术。在考虑实现的时候分Client端、Web服务器端和消息通信协议三部分考虑。WEB服务的标准如下图所示:二、Web服务实现功能的描述服务提供端(Web服务Server端)--------支持远程通信协议(HTTP,JMS…)--------接收和处理SOAP消息(解析SOAP消息…)

2013-11-11 20:52:19 1151

原创 Web服务及实现方法(一)

一、WEB服务产生的背景Web 服务是一种想把全世界的Internet/Intranet变成一个虚拟计算环境的 观念和技术。在由Web Service组成的虚拟环境中使用者可以任何的客户端软件,例如浏览器,一般的Window或是Java应用程序或是手机等,来调用Web服务提供的服务。而Web服务本身则可以由任何的技术来编写,例如开发者可以使用Delphi,Java,C/C++或是C#等语言和工

2013-11-02 16:39:05 1207

原创 C++ 指针和引用的区别

一、指针和引用解释指针和引用形式上很好区别,但是他们似乎有相同的功能,都能够直接引用对象,对其进行直接的操作,下面简单解释一下指针和引用的区别指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址。char c=‘A';char *p=&c;指针p指向char类型的变量C 。P的值为:&C,即变量C的地址引用-引用是一个对象的

2013-10-29 22:24:52 704

原创 Project中如何正确导入第三方jar包

今天遇到一个问题,第三方ar包中的类怎么也无法导入,直接导致不能用。百思不得其解(......),在一番搜索之后问题得解。从 J2SE 1.4 开始,Java 编译器不再支持 import 进未命包名的类、接口。也就是说,你不能在一个非默认包的类中访问默认包中的类或方法。既不能import,也不能直接使用。有大牛直接找到了官方的解释文档如下(竟然能这么精确定位,太牛了): The comp

2013-10-25 20:43:38 1443

转载 java实现socket文件传输

事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java SDK提供一些相对简单的Api来完成这些工作.Socket就是其中之一.对于Java而言.这些Api存在与java.net 这个包里面.因此只要导入这个包就可以准备网络编程了. 网络编程的基本模型就是客户机到服务器模型.简单的说就是两个进程之间相互通讯,

2013-10-23 10:05:28 9369 2

原创 利用JAXB实现XML文件和Java对象之间的转化

JAXB(Java Architecture for XML Binding ) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能

2013-10-19 15:38:09 3377

CORBA简明教程

本书对CORBA规范做了详细的解释和介绍,对CORBA提供的各种服务由浅入深的进行了介绍,非常适合要用到CORBA的同学参考。

2014-12-04

Java 7虚拟机规范

高清Java7虚拟机规范,详细介绍Java虚拟机。

2014-07-24

CrackCode 英文版

经典程序员面试书籍,CrackCode第四版,高清英文版PDF。详细讲解面试中的各种问题,包括面试前如何准备,面试中怎么应变。还包括常见面试题目及考点的总结。非常好的一本面试准备书。值得收藏。

2014-07-24

C++11 标准

ISO最新C++11的标准,英文版高清PDF

2014-07-24

常用算法代码

这是一个把常见问题用C++实现的代码集合,里面囊括了图论常见问题的实现,数据结构常见问题的实现,网络流问题的实现,数量问题的实现,排列组合问题的实现,ACM竞赛问题的实现。字符串匹配相关问题的实现等等。是一个高清的pdf文件,非常好的资料。

2013-12-17

基于UML的图书管理系统

详细介绍UML建模过程,以图书管理系统为例,介绍面向对象软件开发过程。

2010-05-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除