随笔 - 20, 文章 - 0, 评论 - 45, 引用 - 0
数据加载中……

2011年5月2日

COM组件注册真相

     摘要: 一个COM组件在使用前必须首先注册。所谓“注册”,也就是向系统注册表的相应位置写入一些数据。这些数据可以完成guid与Dll的绝对路径的一一对应,也就是说可以帮助程序通过guid找到Dll的位置。   阅读全文

posted @ 2011-05-02 13:00 Kenny Jiang 阅读(5654) | 评论 (2)编辑 收藏

2011年4月30日

COM组件简介

     摘要: 面向对象的思想难以适应这种分布式软件模型,于是组件化程序设计思想得到了迅速的发展。按照组件化的程序设计的思想,复杂的应用程序被设计成一些小的,功能单一的组件模块,这些组件模块可以运行在同一台机器上,也可以运行在不同的机器上。为了实现这样的应用软件,组建程序和组建程序之间需要一些极为细致的规范, 只有组件程序遵守了这些共同的规范,然间系统才能正常运行。 为此,OMG和Microsoft分别提出了CORBA(Common Object Request Breaker Architecture)和COM(Component Object model)标准,目前CORBA模型主要应用于UNIX操作系统平台上,而COM 则主要应用于Microsoft Windows操作系统平台上。  阅读全文

posted @ 2011-04-30 20:08 Kenny Jiang 阅读(1550) | 评论 (0)编辑 收藏

2011年4月29日

关于DirectX3D顶点格式D3DFVF_XYZRHW

     摘要: D3DFVF_XYZ和D3DFVF_XYZRHW有什么区别?以前好像没有仔细思考过,只是见到Beginning DirectX9中如是说:The RHW value, which stands for Reciprocal of Homogeneous W[1], tells Direct3D that the vertices that are being used are already in screen coordinates. This value is normally used in fog and clipping calculations and should be set to 1.0.   阅读全文

posted @ 2011-04-29 22:04 Kenny Jiang 阅读(1289) | 评论 (1)编辑 收藏

2011年4月28日

C++著名程序库的比较和学习经验

     摘要: 1、C++各大有名库的介绍——C++标准库
2、C++各大有名库的介绍——准标准库Boost
3、C++各大有名库的介绍——GUI
4、C++各大有名库的介绍——网络通信
5、C++各大有名库的介绍——XML
6、C++各大有名库的介绍——科学计算
7、C++各大有名库的介绍——游戏开发
8、C++各大有名库的介绍——线程
9、C++各大有名库的介绍——序列化
10、C++各大有名库的介绍——字符串
11、C++各大有名库的介绍——综合
12、C++各大有名库的介绍——其他库
13、C++名人的网站  阅读全文

posted @ 2011-04-28 22:21 Kenny Jiang 阅读(17856) | 评论 (9)编辑 收藏

2011年4月27日

比较好的学术搜索引擎

     摘要: 1、http://scholar.google.com/
Google学术搜索滤掉了普通搜索结果中大量的垃圾信息,排列出文章的不同版本以及被其它文章的引用次数。略显不足的是,它搜索出来的结果没有按照权威度(譬如影响因子、引用次数)依次排列,在中国搜索出来的,前几页可能大部分为中文的一些期刊的文章。
2、http://www.scirus.com
Scirus是目前互联网上最全面、综合性最强的科技文献搜索引擎之一,由Elsevier科学出版社开发,用于搜索期刊和专利,效果很不错!Scirus覆盖的学科范围包括:农业与生物学,天文学,生物科学,化学与化工,计算机科学,地球与行星科学,经济、金融与管理科学,工程、能源与技术,环境科学,语言学,法学,生命科学,材料科学,数学,医学,神经系统科学,药理学,物理学,心理学,社会与行为科学,社会学等。  阅读全文

posted @ 2011-04-27 10:51 Kenny Jiang 阅读(17681) | 评论 (1)编辑 收藏

2011年4月26日

define的用法与注意事项

     摘要: #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对C语言的学习很不利。下面将分别对基本用法和特殊做详细介绍。  阅读全文

posted @ 2011-04-26 22:13 Kenny Jiang 阅读(1820) | 评论 (2)编辑 收藏

2011年4月25日

C++中四种类型转换符的总结

     摘要: reinterpret_cast操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换,即二进制值没有变。
dynamic_cast主要用于类层次间的上行转换和下行转换,还可以用于类之间的交叉转换。
const_cast运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和exdivssion的类型是一样的。   阅读全文

posted @ 2011-04-25 22:05 Kenny Jiang 阅读(1825) | 评论 (2)编辑 收藏

2011年4月23日

王朝云---苏轼心中的巫山女神

     摘要: 毛晋《东坡笔记》有则故事讲,苏轼一日还朝,饭后在庭院里徐行,突然抚摸着腹部问侍儿:“汝辈且道其中何物?”一婢答道:“都是文章。”苏轼不以为然,另外一婢接着道:“满腹都是机械。”苏轼又摇了摇头,最后轮到了朝云,朝云答:“学士一大肚皮不合适宜。”苏轼捧腹大笑:“知我者,唯有朝云也。”从此以朝云为知己,倍加怜惜。因为朝云明白苏轼为人惟求一“真”字,这是他人生未变的信条,所以遭到的忌恨也多。   阅读全文

posted @ 2011-04-23 21:51 Kenny Jiang 阅读(863) | 评论 (0)编辑 收藏

创建COM组件的全过程分析

     摘要: 在创建COM组件之前,首先必须调用CoInitialize(NULL)初始化COM库,这个函数的解释为:Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA).
接着,就可以通过调用CoCreateInstance函数创建COM组件对象。
当不再使用COM库时,需要调用CoUninitialize()释放COM库。这个函数的解释为:Closes the COM library on the current thread, unloads all DLLs loaded by the thread, frees any other resources that the thread maintains。
详细分析CoCreateInstance的具体操作  阅读全文

posted @ 2011-04-23 20:44 Kenny Jiang 阅读(2761) | 评论 (3)编辑 收藏

类模板和模板函数连接出错处理

     摘要: 对C++编译器而言,当调用函数的时候,编译器只需要看到函数的声明。当定义类类型的对象时,编译器只需要知道类的定义,而不需要知道类的实现代码。因此,因该将类的定义和函数声明放在头文件中,而普通函数和类成员函数的定义放在源文件中。
但在处理模板函数和类模板时,问题发生了变化。要进行实例化模板函数和类模板,要求编译器在实例化模板时必须在上下文中可以查看到其定义实体;  阅读全文

posted @ 2011-04-23 12:46 Kenny Jiang 阅读(2895) | 评论 (3)编辑 收藏

2011年4月19日

郭靖与黄蓉——真爱无敌

     摘要: 什么叫真好 我穿这样的衣服,谁都会对我讨好,那有什么稀罕?我做小叫化的时候你对我好,那才是真好。 ——《射雕英雄传》第8回 这是黄蓉对郭靖的肺腑之言。 黄蓉是金庸笔下最“完美”的女性形象之一。她聪明美丽,武功高强,父亲黄药师是一代武学宗匠。黄蓉既博学又机巧,心细如丝,爱慕她的男子不知会有多少。然而什么样的男子才能配得上她,什么样的男人才能打动她的芳心呢?是郭靖。   阅读全文

posted @ 2011-04-19 13:54 Kenny Jiang 阅读(2533) | 评论 (2)编辑 收藏

函数调用的区别:_cdecl以及_stdcall

     摘要: 几乎我们写的每一个WINDOWS API函数都是__stdcall类型的,首先,需要了解两者之间的区别: WINDOWS的函数调用时需要用到栈(STACK,一种先入后出的存储结构)。当函数调用完成后,栈需要清除,这里就是问题的关键,如何清除?如果我们的函数使用了_cdecl,那么栈的清除工作是由调用者,用COM的术语来讲就是客户来完成的。这样带来了一个棘手的问题,不同的编译器产生栈的方式不尽相同,那么调用者能否正常的完成清除工作呢?答案是不能。如果使用__stdcall,上面的问题就解决了,函数自己解决清除工作。所以,在跨(开发)平台的调用中,我们都使用__stdcall(虽然有时是以WINAPI的样子出现)。那么为什么还需要_cdecl呢?当我们遇到这样的函数如 fprintf()它的参数是可变的,不定长的,被调用者事先无法知道参数的长度,事后的清除工作也无法正常的进行,因此,这种情况我们只能使用 _cdecl。到这里我们有一个结论,如果你的程序中没有涉及可变参数,最好使用__stdcall关键字。  阅读全文

posted @ 2011-04-19 13:23 Kenny Jiang 阅读(8466) | 评论 (12)编辑 收藏

2011年4月18日

DLL的那些事儿

     摘要: DLL是dynamic-Link Library的缩写,它一直是windows编程的基石。DLL是一个windows程序员必须要掌握的技能。下面从几个不同的方面介绍一下DLL的基础知识,或许会有不妥的地方,希望大家指正。  阅读全文

posted @ 2011-04-18 16:02 Kenny Jiang 阅读(2499) | 评论 (3)编辑 收藏

2011年4月17日

天知,地知,我知,子知(杨震四知)

     摘要: 天知,地知,我知,子知,何谓无知者?  阅读全文

posted @ 2011-04-17 22:20 Kenny Jiang 阅读(298) | 评论 (0)编辑 收藏

2011年4月16日

线性规划之父Dantzig的小故事

     摘要: 一个人的潜能是难以预料的,成功的障碍往往来自于心理上的畏难情绪;一定要相信自己,保持积极的态度。  阅读全文

posted @ 2011-04-16 22:18 Kenny Jiang 阅读(452) | 评论 (0)编辑 收藏

用内存映射文件的方法来读取和修改磁盘文件

     摘要: 内存映射文件是利用虚拟内存把文件映射到进程的地址空间中去,在此之后进程操作文件,就像操作进程空间里的地址一样了,比如使用memcpy等内存操作的函数。这种方法能够很好的应用在需要频繁处理一个文件或者是一个大文件的场合,这种方式处理IO效率比普通IO效率要高。  阅读全文

posted @ 2011-04-16 22:15 Kenny Jiang 阅读(5707) | 评论 (1)编辑 收藏

memmove、memcpy、strcpy

     摘要: strcpy只能处理字符串;如果拷贝带有特殊字符的串,就只能用memcpy或memmove。  阅读全文

posted @ 2011-04-16 21:50 Kenny Jiang 阅读(1514) | 评论 (0)编辑 收藏

进程虚拟地址空间

     摘要: 在windows操作系统中,每个进程都有自己的私有地址空间,因此一个进程的线程只能访问属于这个进程的内存空间,即进程之间是地址隔离的。在windows2000中,进程虚拟地址空间可分为如下四个部分:  阅读全文

posted @ 2011-04-16 11:22 Kenny Jiang 阅读(3218) | 评论 (4)编辑 收藏

2011年4月15日

过生日吃长寿面的由来

     摘要: 东方朔解释说:“我不是笑陛下,而是笑彭祖。人活100岁,人中1寸长,彭祖活了800岁,他的人中就长8寸,那他的脸有多长啊。”  阅读全文

posted @ 2011-04-15 18:42 Kenny Jiang 阅读(212) | 评论 (0)编辑 收藏

西钟东鼓 VS 东钟西鼓

     摘要: 到底是西钟东鼓 ?还是东钟西鼓 ?这有一个小故事。想当年在建造辟雍的钟鼓楼时,连监造国子监的和绅、刘墉等人包括乾隆爷在内都认为,早晨太阳东升,傍晚太阳西落,“晨钟暮鼓”自然应是东钟西鼓。  阅读全文

posted @ 2011-04-15 18:29 Kenny Jiang 阅读(511) | 评论 (0)编辑 收藏