当前位置:C++技术网 > 资讯 > 你必须知道的程序那些事:3 文件名、程序名和映像名

你必须知道的程序那些事:3 文件名、程序名和映像名

更新时间:2015-06-24 22:42:50浏览次数:1+次

    文件名就是一个文件的名称,操作系统通过这个名称读写文件和执行文件。这个大家都懂。而对于一个软件文件来说,文件名就是可执行文件exe的名称。
    程序文件和普通的文件不一样。程序文件不仅读写,还可以执行,并且重点的是执行。
    而程序名则是显示在程序界面的名称。这个的定义,是有程序员来确定的。而映像名则是大家最不熟悉的了。其实本文重点讲述这几个的关系,给大家一个清晰的认识。
    映像就是一个可执行文件比如EXE文件执行后,被系统加载到内存中。但是因为内存的有限,为了节省内存的使用,系统并不是一次性将可执行文件全部加载到内存中,而是加载其中一部分,其余的则是在需要时加载到内存。这样就形成了一种机制,内存映射机制。
    在系统加载EXE后,通常使用内存映射文件的方式,将可执行文件映射到内存,生成一个句柄,用来索引这个文件的。而这个文件就被称为“模块”或者“映像”。所以映像名就是那个运行时的程序的文件名,如“完美记事.exe”。那么“完美记事”就是映像名了。如果把它修改为“C++技术网.exe”,那么映像名就是“C++技术网”了。这样说,应该很好懂了吧。而这个映像名就是系统的任务管理器中显示的名称。
    至于具体的内存体系结构,可以参考操作系统相关章节的知识。
    上面已经将这三个基本概念说清楚。下面来说说如何在生成EXE时使用我们指定的名称生成呢?
    默认情况下,VS使用工程名给程序命名。这个是可以改的。有朋友问我这个问题,就借此详细说一下如何操作。
    在VS的主菜单中“项目”->“你的项目”就可以进去到你的项目的属性页了。然后单击"链接器"->“常规”,在右侧的“输出文件”中显示的就是默认的名字。比如默认的是:$(OutDir)\$(ProjectName).exe  。第一个代表的是输出目录,第二个代表的是工程名,最后一个扩展名。以后生成EXE文件就是按照这个格式来生成。如果你想这样生成后,每次还要自己手动改,那么你可以将第二个用固定的名字。这样每次都是按照你的路径和名字来生成EXE。这里默认的是变量,每个工程都会自动填写变量的值,并生成到EXE中的名称里。