存档在 2014年8月

预编译头编译链接过程

2014年8月29日
  • 预编译头文件
  • 在编写程序的时候,有一些头文件被许多文件用到。例如:windows.h这样的系统头文件。如果不采用预编译头文件,那么每个包含windows.h的文件都需要编译这个文件。这将会增加编译时间。正是为了解决这个问题,Microsoft Visual C++提出了预编译头文件的解决方法。

    所谓预编译头文件,即将一些指定的头文件预先编译成二进制文件,为了与其他二进制文件区别开来。预编译的头文件生成的二进制文件以.PCH结尾。在Visual C++中默认使用预编译头文件,预编译头文件默认为stdafx.cpp,将那些常用的头文件都放进stdafx.h中去即可。而stdafx.cpp则只包含stdafx.h一个文件。其他所有文件都默认为调用预编译头文件,也即每个.cpp文件都需要在第一行包括#include “stdafx.h”这样的文件。

    当然我们也可以自己定义预编译头文件。例如创建这样两个文件:MyStdafx.h,MyStdafx.cpp。然后将需要提前编译的头文件包含在MyStdafx.h中去,并将MyStdafx.h包含到MyStdafx.cpp中去。将通过Properties\C/C++\Precompiled Header中选择Create Precomliled Header即可。

    Visual C++的其他文件都是默认使用预编译头文件的,并且默认指定了使用的预编译头文件stdafx.h,所以我们在使用了预编译头文件的.cpp文件中必须首行包含stdafx.h。当然我们如果不想使用stdafx.h的话,可以通过Properties\C/C++\Precompiled Header中设置Not Using Precompiled Headers。如此设置,即可以不包含stdafx.h文件了。

    当设定好了预编译头文件时,我们来看一下它是如何工作的。编译都是以.cpp文件为单位开始的,当编译器发现有包括预编译头文件stdafx.h时,并不是将这个文件通过预编译包含进来,而是代替以相就的.pch文件。这样将大大节约编译时间。

  • 编译链接过程
  • 当一段代码写好之后进行Build时,主要完成以下三个步骤。

    • 1. 预处理阶段:即由预处理器对预处理指令(#include、#define和#if)进行处理,在内存中输出翻译单元(一种临时文件)。还有预编译头文件并生成pch文件。
    • 2. 编译阶段:编译器将内存中的预处理单元,及.pch文件,并编译.cpp文件成生对应的二进制.obj文件(里面包含的是程序的相对地址)。
    • 3. 链接阶段:链接器将所有obj文件以及所用到的标准库链接成可执行文件.exe。
    • 6597533760563904363

最近…

2014年8月26日

很长时间没有更新博客了。一来是最近确实没有学什么东西,不知道写点什么,二来是现在处于迷茫期,没有静下来的力量。

未来的学习方向,未来人生努力的目标,统统都很模糊,前所未有的迷茫。

有点点后悔,但是既然选择了就要慢慢改变自己,其他想法都赶紧收起来。全力以赴,沉寂一年来看看效果…。

Rational Rose 03不能使用相关

2014年8月5日

很长时间没有使用Rational Rose 2003建模,今天打开后发现有几个问题,现在列出如下:(进行以下操作的前提是你已经破解过,而且在控制面板中可以找到FLEXlm License Manager)

  • 1.权限问题
  • 这个错误的提示信息如下:


    This usually indicates that the product has not been properly installed.
    If you are evaluating this product, please contact your nearest Rational Software Sales office.
    For a listing, please check www.rational.com.

    解决办法就是使用管理员权限打开Rose就成了。

  • 2.KEY问题
  • 这个错误的提示信息如下:

    Failed to check out a key for rose_enterprise_windows:
    FLEXlm Error -2, Invalid license file syntax OR no licenses in file.
    FLEXlm Error -15, Cannot connect to license server.
    If you are evaluating this product, please contact your nearest Rational Software Sales office.
    For a listing, please check www.rational.com.

    解决办法就是以管理员权限打开“Rational License key Administrator”,选择“Point to a Rational License Server to get my licenses.”,然后在控制面板中找到“FLEXlm License Manager”,重启license服务器。

Visio2003数据库建模时与显示相关选项

2014年8月2日
  • 1 如何显示字段类型:
  • 在visio菜单上—>点击数据库—>选项—>文档

    打开“表”tab页,选择“数据类型”的“显示物理的”。

  • 2 如何显示注释/概念名称
  • 在visio菜单上—>点击数据库—>选项—>文档

    打开后选择“常规”tab项,在上面找到”在图表上可见的名称”,选择”两者”,这样在visio的数据库模型上就会出现概念名称与物理名称同时显示,其中在概念名称上可以写上中文的注释