自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

经天纬地

技术学习专栏

  • 博客(79)
  • 资源 (2)
  • 收藏
  • 关注

原创 Message Queuing(MSMQ)学习之旅(二)——创建Queue

1.前言应用程序创建的Queue根据你是否希望被其他程序找到可分为Public Queue和Private Queue,Public Queue会在directory service中注册,有利于长时间的使用。Private Queue在本机注册,而不在directory service中注册,它一般通过在%windir%\System32\MSMQ\Storage\Lqs下存储相应的描叙

2013-03-18 16:02:13 3430

原创 Message Queuing(MSMQ)学习之旅(一)——基本概念

1.MSMQ是什么?(来源:百度百科)Message Queue(微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位置。它的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为Message),然后把它保存至一个系统公用空间的消息队列(Message Queue)中;本地或者是异地

2013-03-18 13:41:09 2616

转载 Message Queuing (MSMQ)

Message Queuing (MSMQ) technology enables applications running at different times to communicate across heterogeneous(多种多样的) networks and systems that may be temporarily offline. Applications send mes

2013-03-11 11:12:50 2216

原创 float类型和double类型的二进制存储

在32位环境下, float占用32位,double占用64位,目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和       尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具体的规格:                         符号位     阶码

2011-11-10 16:01:45 23232 5

原创 Windows Installer5.0学习之Windows Installer简介

Windows Installer是微软提供的Windows平台下进行安装和配置的服务.他提供了方便的方案供开发者提供安装包,首先在Windows平台下面一般都会自带有Windows Installer服务,如果没有相应的服务也可以从微软官网下载。这样开发者就能用Windows Installer SDK来应用Windows Installer服务订制安装程序。 Windows Ser

2011-11-03 17:45:31 4586

原创 做IS5到IS12升级的一些杂想

1。一个产品最好提供各版本的历史记录,和各版本的改进之处,以及升级方式。比如installshield,有多个版本,从IS5.X到IS12到现在的IS2012,经历了很多的版本,像IS12的原来的网站现在已经不存在了。如果一个公司原来用IS12,现在想用最新版本的IS的话就会考虑我为啥要换新的版呢,你这版有啥好的呢。但是在网上只能找到最近一个版本的改进之处。 2。重视项目的管理,做好com

2011-11-01 17:14:43 680

原创 在查找预编译头指令时遇到意外的文件结尾

关于出现fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾的问题用mfc编程,貌似在任何类前都必须加上#include "StdAfx.h"而且最好加在最前面,而且就算当前的文件在主目录下面的子文件夹下,也不需要进行重新定位,直接#include "StdAfx.h",不做任何改变就行 

2008-10-10 10:51:00 2086

转载 VC++动态链接库(DLL)编程深入浅出(zz)

1.概论  先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。   静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使 用DLL,

2008-07-09 13:24:00 1091 1

转载 好习惯从现在开始

希望在工作中能养成一些好习惯:1.每天记账  公家的、个人的,  一来免得时间长了记不清了,  二来养成节约得好习惯.2.记录心得  勤思考,多总结。  记得做得好的地方,办得漂亮的事情,积累信心,为以后的工作打好基础;  分析做得不好的地方,为啥办得不好,原因是什么,怎么做可以不这样狼狈,  以后争取不犯同样的错误。3.要有计划  要做的事太多,好记性不如烂笔头,  宝贵的大脑资源用来记忆琐事,

2008-04-25 14:10:00 576

转载 职业规划---面向瓶颈

原文http://bbs.chinaunix.net/thread-1078917-1-2.htmlinnovate511 发表于 2008-4-12 00:51 做IT的都知道现在软件分有面向过程,面向对象,面向服务等概念,那么职业发展是面向什么呢?面向薪水,面向大公司还是面向精通某个技术?我觉得最好的方法是面向瓶颈.什么是职业发展的瓶颈?我个人觉得分为几个方面,每个人会面向多个不同组合的瓶颈.

2008-04-25 14:08:00 550

转载 C++辨析

                        C++辨析系列谈                        ·郑力群·yesky   static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下 面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质 。 static 的两大作用: 一、控制存储方式:   static被引入以告知编译器

2008-02-05 15:08:00 642

转载 基本数据类型小议

1. 整型只有四类:short, int, long, long long.    在int和short/long的组合中,int被忽略。其它的组合被视为非法。如           short int x 等价于 int short x 等价于 short.          long int x  等价于 int long x  等价于 long.          long int long

2008-02-05 10:28:00 712

转载 const volatile的使用

volatile修饰符告诉complier变量值可以以任何不被程序明确指明的方式改变,最常见的例子就是外部端口的值,它的变化可以不用程序内的任何赋值语句就有可能改变的,这种变量就可以用volatile来修饰,complier不会优化掉它。 const修饰的变量在程序里面是不能改变的,但是可以被程序外的东西修改,就象上面说的外部端口的值,如果仅仅使用const,有可能complier会优化掉这些变

2008-02-04 23:32:00 695

转载 匿名namespace的作用以及它与static的区别

一。匿名namespace的作用 在C语言中,如果我们在多个tu(translation unit)中使用了同一个名字做 为函数名或者全局变量名,则在链接阶段就会发生重定义错误,为了解决这个 问题,我们可以在定义这些标识符(identifier)的时候加上static关键字修 饰以限制它只在一个tu范围内可见。 C++继承了C语言中static关键字的这个用途,我们依旧可以使用static来避免

2008-02-04 18:28:00 909

转载 T a(v);和T a = v;的区别

本文所说的类型T均指UDT,非built-in类型 构造一个对象,有如下三种形式: 1。T a; 这个没什么好说的,调用default ctor来构造a 不过要注意的是,要么T就一个ctor也没有,编译器合成default ctor,即T::T() 如果T有手动添加的其他形式的ctor,但是没有T::T(),则此语句报错,因为编译器不再 为T合成default ctor *注1,如果没有def

2008-02-04 14:06:00 4693

转载 C/C++的左值和右值

0    左值性(lvalueness)在C/C++中是表达式的一个重要属性。只有通过一个左值表达式才能 来引用及更改一个对象(object)的值。(某些情况下,右值表达式也能引用(refer)到某一 个对象,并且可能间接修改该对象的值,后述)。     何谓对象?如果没有明确说明,这里说的对象,和狭义的类/对象(class/object)相比, 更为广泛。在C/C++中,所谓的对象指的是执行环境

2008-02-04 11:59:00 1658 1

转载 C/C++中的序列点(待读)

0. 什么是副作用(side effects) C99定义如下 Accessing a volatile object, modifying an object, modifying a file, or  calling a function that does any of those operations are all side effects,  which are changes i

2008-02-04 00:04:00 954

转载 二维数组new小结

1.      A (*ga)[n] = new A[m][n];     ...     delete []ga; 缺点:n必须是已知 优点:调用直观,连续储存,程序简洁(经过测试,析构函数能正确调用) 2.  A** ga = new A*[m];     for(int i = 0; i          ga[i] = new A[n];     ...     for(int i = 

2008-02-03 23:09:00 613

转载 模板特化降低代码膨胀

以下内容根据TC++PL 13.5 Specialization一节。          考虑定义了模板Vector之后,我们可以定义     Vector     Vecotr     Vector     等。          Vector的所有操作,对int *, char *等各种类型都要生成一份代码,     例如Vector::swap(),最终代码里就会有Vector::swap(

2008-02-03 21:56:00 1029

转载 new的六种重载形式

当写出 p = new P(); 这样的代码的时候, 实际上有两步操作, 首先分配内存, 然后在分配好的内存之上初始化类成员. 第二步是有构造函数完成的, 第一步就是new函数的工作. 全局的new有六种重载形式,  void *operator new(std::size_t count)     throw(std::bad_alloc);             //一般的版本 voi

2008-02-03 21:42:00 1258

转载 C++namespace的使用

C++的namespace应用的几种基本方式 1.限定方式:如,mynamespace::BTreeNode 2.完全暴露方式:如,using namespace mynamespace,该方式将mynamespace的全部暴露   在全局空间 3.声明方式:如,using mynamespace::BTreeNode,这样避免把其他并不需要的内容   也暴露在全局空间,造成“空间污染” 4.别名

2008-02-03 21:34:00 1738 1

转载 关于inline的误解

误解:inline函数没有单独的函数体,也不能取地址。 inline修饰并不会改变函数的通常语义,仍可通过函数指针调用: inline void f() {} void g() {   void (*p)() = f;   p(); } ------------------------------------------------------------------------ 误

2008-02-03 09:37:00 652

转载 c++的经典书籍

  讲一下我的经验。 首先,关于入门书方面,我觉得到现在我都没有看到一部适合初学者的 C++ 入门书。经典的书都是高手们写的,但根本不适合初学者看。这大概 是 C++ 族群增长的一大瓶颈。 我个人觉得最适合入门的一本书是「从 C 到 C++ 物件导向革命」,当 然光看书名大家就猜到这是台湾的书了。它是 1990 年的书,作者陈建维 先生是当时 C++ 标准委员会的一员。这本书我觉得相当不错,用不

2008-02-02 15:05:00 785

转载 由C#风潮想起的-给初学编程者的忠告

我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能 力去追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB. Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友 眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样 ,"忽如一夜春风来,千树万树梨花开",结果许多学校的信息学院成了"Web 学院

2008-02-02 13:53:00 576

转载 程序员的德行

作者:赵月旺     本文选自:登龙门人力资源网络  2003年06月12日   程序员一定要除了基本的道行修炼外。更重要的是德行修炼。德行=合作能力或沟 通能力。对于规模大,生命周期长(特别是衍生生命周期长)的软件项目而言,德行更 重要。   德行的标准   软件开发离不开企业,企业的文化决定着程序员的行为规范,比较理想的企业文化 是:   沟通方式开放、自由、平等,个人长期发展和企业发展的有限

2008-02-02 13:03:00 718 1

转载 声明和定义的区别

声明(declaration)引入一个名字,而定义(definition)给出程序中各个实体(entity,比如函数,类型等)的完整唯一的描述。一个声明就是一个定义,除非: 1. 它声明了一个函数但是没有给出函数体。(问题e) 2. 它使用了extern关键字。              (问题d) 3. 它声明了一个类的名字。 4. 它是typedef。 5. 它在类定义中声明了static m

2008-02-01 20:03:00 686

转载 用streambuf简单封装socket

C++的I/O流是很强大的. 一方面在于易于使用, 类型安全. 另一方面在于容易扩展. 前几天尝试了一下用streambuf来封装客户端使用的socket. 虽然代码运行正确, 自己 的概念确实很模糊. 今天下回来cuj的光盘, 浏览了一下其中一篇也是关于使用stream来 封装socket的文章, 发现作者的概念也不比我清楚到哪里去. ;-) 先考虑一下最后客户代码的写法, 我希望是这样  

2008-02-01 18:23:00 3861 4

转载 如何用宏生成动态二维数组

#define matrix_allocate(matrix, width, height, TYPE) {/ matrix = new TYPE* [height];/ for(int _i = 0; _i   matrix[_i] = new TYPE[width];/}#define matrix_delete(matrix, width, height){/ for(int _i = 0;

2008-02-01 16:29:00 913

转载 如何重定向std::cout

std::ofstream log("foo.log"); std::streambuf *oldbuf = std::cout.rdbuf(log.rdbuf()); You can simply derive a class for std::streambuf, override the overflow function, and use it to replace the std::co

2008-02-01 16:08:00 2818

转载 如何看 VC 编译出的汇编代码

在VC6.下 Project setting中 工程类型选Release C++属性页中,分类下拉框选General,调试信息选Program database Link属性页中,分类也选General,选中General Debug Information. 调试的时候点击View->Debug Window->Disassembly选单项,就可以在汇编级别调试 可以看到优化的效果 还有就是看

2008-02-01 15:46:00 1415

转载 内存管理内幕

转自ibm开发者 详见 http://www-900.ibm.com/developerworks/cn/linux/l-memory/index.shtml 非常不错 C 风格的内存分配程序 C 编程语言提供了两个函数来满足我们的三个需求:  malloc:该函数分配给定的字节数,并返回一个指向它们的指针。如果没有足够的可用内存,那么它返回一个空指针。 free:该函数获得指向由 mallo

2008-02-01 10:37:00 509

转载 指针详解

指 针  作者:jacky 第一章。指针的概念  指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。  要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的  类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。 让 我们分别说明。  先声明几个指针放着做例子:  例一:  (1)int*ptr;  (2)char*ptr;  (3)int**p

2008-02-01 10:34:00 555

转载 C之诡谲

从研究生二年纪开始学习计算机也差不多两年了,一路走来,有很多的收获,也有不少  的遗憾,现在正好有一段闲暇,就想对走过的路留下一些足迹,回忆。每个人都有自己不同  的人生,说到这里,就是程序人生了,歌德在《浮士德》中说过:“如果不曾在悲哀中咀  嚼过面包,不曾在哭泣中等待过明天,这样的人就不知道你——天的力量。”所以我想记  下一些带给我悲哀,带给我哭泣的程序人生。其实学习计算机的基础课程是非常重

2008-02-01 08:59:00 927 1

转载 将一个txt文档中所有字符读入一个数组中的代码

FILE* f = fopen("filename", "rb");         // get file length         fseek(f, SEEK_END, 0);         const int len = ftell(f);         fseek(f, SEEK_SET, 0);         // read file         char* buf = 

2008-01-31 23:42:00 993

转载 更深入一点理解 switch 语句 及 c/c++ 对 const 的处理

更深入一点理解 switch 语句 及 c/c++ 对 const 的处理                                     谢煜波 前段时间在论坛上看见台湾李维在>一书中对windows编程模式中,消息处理部分有如下的一些分析: 他说,在消息处理循环中,一般的形式是这样的 MSG msg ; switch( msg ){         case WM_XXXXXXX 

2008-01-31 22:35:00 993

转载 解析C语言中的sizeof

作者:kent  一、sizeof的概念    sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。 它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。 操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由 操作数的类型决定。  二、sizeof的使用方法    1、用于数据类型    sizeof使用形式:sizeof(type)    

2008-01-31 22:25:00 430

转载 如何在程序中找到何处在不断占用内存

一个简单而有效的方案: 分配的时候多分配一点空间作头,记下分配的文件名和行号,把所有的头连成一个环形双 链表,释放的时候从双链表中删除,并释放头。 结束的时候只要检查这个双链表是否唯恐就知道哪里泄漏内存了 在Windows DDK里的简化代码: in xxx.h // the real heap function void* sys_malloc(size_t size); void s

2008-01-31 21:20:00 822

转载 autodesk笔试

1     dll,lib处理实现     .lib文件中包含什么?   dll在内存中被多个函数共享,有几个拷贝?    简单说,lib里面只有符号,dll里面才是具体的实现. dll并不是拷贝到每一个调用者的进程空间,而是只在内存中保留一份拷贝。通过引用计数的方式控制其卸载。    但是dll中的全局变量是要被拷贝到每一个调用者的进程空间的  2     template,te

2008-01-31 19:51:00 700

转载 编程修养

什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。 我认为好的程序员应该有以下几方面的素质:   1、有专研精神,勤学善问、举一反三。   2、积极向上的态度,有创造性思维。   3、与人积极交流沟通的能力,有团队精神。   4、谦虚谨慎,戒骄戒燥。  

2008-01-31 19:29:00 543

转载 TC2.0库函数大全

分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母(A-Z,a-z)返回非0值,否则返回0 int isalnum(int ch) 若ch是字母(A-Z,a-z)或数字(0-9),返回非0值 ,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0

2008-01-31 19:05:00 1314

空空如也

空空如也

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

TA关注的人

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