给自己编写的C语程序编译的exe添加ico图标

给自己编写的C语程序编译的exe添加ico图标
给自己编写的C语程序编译的exe添加ico图标

1 实验目的:

给一个经过vc++编译生成的exe文件添加一个ico图片。

实验前图片:

试验后图片:

2 实验环境:

Visual C++ 6.0 ,一个c语言代码,一个ico图片(若图片为jpg、jpeg、gif和png,可以在线制作,网址:https://www.360docs.net/doc/599807865.html,/old.html)。

3 实验背景:

本人在网上找到了一个黑客数字雨的c语言代码,编译生成一个exe文件后,没有图标,于是我就想到平时用的程序都有一个图标,很美观。于是我就在qq群和网上查询。经过一番努力,终于实现了。就总结了此篇文档,希望对此感心情的学习者有所帮助。本文档实验环境可能不具有普遍性,如有疑问可以qq交流,2514329386,非诚勿扰,谢谢。

4 实验步骤:

1.打开vc++,然后打开你的c语言代码,如图1-1;

图1-1

编译生成一个没有图标的exe文件,如图1-2。(这要求你会用vc++编译exe文件哦,可以qq交流哦,当然,大神们看了这个文档可能要笑了,对于他们这是小菜一碟,其实很简单,

操作几次就会了)

2.将ico图片放在exe文件所在的目录下,如图2-1

3.回到图1-1,点标题栏的插入,再选择资源。如图3-1;

图3-1

弹出图3-2,选择图中的icon,再选着引入;

图3-2 弹出图3-3,选择你的ico图片,再点引入;

图3-3 接着弹出图3-4;点保存;

弹出图3-5,输入文件名,图中为Script1.rc,你可以改为test.rc;在按保存;又回到了图3-4.

在Debug文件夹中多了两个文件,如图3-6

图3-6

在图3-4中选择工程下的添加到工程下的文件如图3-7后弹出图3-8

图3-7

图3-8

选择刚才保存的test.rc(我把刚才的Script1.rc改成了test.rc了)再按确定。然后,点标题栏下的组建下的组建(快捷键为F7)如图3-9

我使用的是win7系统,会弹出图3-10

图3-10

选着运行成序就OK了。此时打开Debug文件夹发现exe文件就有了图标。图3-11

呵呵,是不是很简单。

图3-11

将黑客数字雨.exe移动到桌面就是图3-12的效果

图3-12

那么看到这个这个程序名字你会想到什么呢?对,就是《黑客帝国》了,嗯,看看这个程序的效果哦!图3-13,当然它是动态的,我只能截图给你看看。

图3-13

若对这个代码感兴趣,可以再百度文库中找到(百度文库:经典的黑客数字雨)https://www.360docs.net/doc/599807865.html,/view/e8d90d2f453610661ed9f4f8.html

亦可以qq找我哦,当然我现在还不能完全看懂这个源代码,真心希望和大家交流。嗯,还以为几张图片可以说清楚,嗨,表达有限,谢谢,很希望和有共同爱好的人一起交流和进步,谢谢,嗯,我的qq是2514329386,不管是表扬还是批评,我都会虚心接受,再次说声三克油!

手把手教你如何将图标文件的英文名改为中文

手把手教你如何将图标文件的英文名改为中文 如果你在小[font=Times New Roman]P[/font] 中安装了许多应用软件和游戏,而这些程序的图标名称大部分都是英文的,看起来未免费劲,本文教你如何将它们改成中文,不需要懂得太多,一步一步的照着图示去做就是了。 ★所需基本制作工具:[font=Times New Roman]Hex Workshop [/font]和[font=Times New Roman]UltraEdi [/font] [font=Times New Roman][/font]图一:[img=99,109]https://www.360docs.net/doc/599807865.html,/catchimg/20070303/608340_0.jpg[/img] 图二:[img=94,98]https://www.360docs.net/doc/599807865.html,/catchimg/20070303/608340_1.jpg[/img] [font=Times New Roman]Hex Workshop[/font] 下载链接:[font=Times New Roman]https://www.360docs.net/doc/599807865.html,/yyrj/yyrj13/yyrj1300018.htm[/font] [font=Times New Roman]UltraEdit [/font]下载链接:[font=Times New Roman]https://www.360docs.net/doc/599807865.html,/soft/2249.html [/font] ★[font=Times New Roman]PC[/font] 操作系统:[font=Times New Roman]WIN98[/font] 或[font=Times New Roman]WINxp[/font] ★开始制作:以一个大家熟悉的屏幕截图软件[font=Times New Roman]Screenshot[/font] 为例,安装后在桌面显示的图标英文名称如图三: [img=209,321]https://www.360docs.net/doc/599807865.html,/catchimg/20070303/608340_2.jpg[/img] [font=Times New Roman]1、[size=3][/size][/font]通过[font=Times New Roman]PC[/font] 端软件[font=Times New Roman]PC_filemanager_Full[/font] 进入[font=Times New Roman]Screenshot[/font] 安装路径,找到它的图标文件[font=Times New Roman]Screenshot.aif,[/font] 将它复制后保存在[font=Times New Roman]PC[/font] 文件夹中待用[font=Times New Roman].[/font] [align=center]图四[font=Times New Roman]:[/font] [/align] [img=400,141]https://www.360docs.net/doc/599807865.html,/catchimg/20070303/608340_3.jpg[/img] [font=Times New Roman]2[/font] 、用[font=Times New Roman]Hex Workshop[/font] 打开该图标文件[font=Times New Roman]Screenshot.aif[/font] ,共[font=Times New Roman]10[/font] 个字节: [align=center]图五[font=Times New Roman]:[/font] [/align] [img=400,308]https://www.360docs.net/doc/599807865.html,/catchimg/20070303/608340_4.jpg[/img] [font=Times New Roman]3、[size=3][/size][/font]运行[font=Times New Roman]UltraEdit[/font] 软件,点击文件[font=Times New Roman]/[/font] 新建,进入操作界面,输入“屏幕抓图”四个汉字,然后点击[font=Times New Roman]10/16[/font] 进制选择按钮: [align=center]图六:[/align] [img=400,302]https://www.360docs.net/doc/599807865.html,/catchimg/20070303/608340_5.jpg[/img] [font=Times New Roman]4[/font] 、依次点击文件[font=Times New Roman]/[/font] 转换[font=Times New Roman]/ASII[/font] 转[font=Times New Roman]Unicode[/font] ([font=Times New Roman]I[/font] )选项: [align=center]图七:[/align]

C、C++程序编译过程

C/C++程序编译过程 学习各种外挂制作技术,马上去百度搜索"魔鬼作坊"点击第一个站进入、快速成为做挂达人。 当我们进行编译的时候,要使用一系列的工具,我们称之为工具链。 其中包括: 预处理器CPP 编译器gcc/g++ 汇编器as 连接器ld 一个C/C++程序编译过程包括下面几个阶段: 1.预处理预处理器cpp将对源文件中的宏进行展开。 2.编译gcc将c文件编译成汇编文件。 3.汇编汇编器as将汇编文件编译成机器码。 4.连接链接器ld将目标文件和外部符号进行连接,得到一个可执行二进制文件。 下面以一个很简单的hello.c来探讨这个过程。 #include #define BUFSIZE1024 int main(int argc,char*argv[]) { char hello[BUFSIZE]="Hello my friend!"; printf("%s\n",hello); return0; }

1.预处理(预处理器cpp): gcc会首先调用CPP进行预处理: [butbueatiful@xt myhello]$cpp hello.c>hello.i 或 [butbueatiful@xt myhello]$gcc-E hello.c>hello.i 我们用vi hello.i查看hello.i的内容如下: …… int main(int argc,char*argv[]) { char hello[1024]="Hello my friend!"; printf("%s\n",hello); return0; } 我们可以看到,文件中宏定义BUFSIZE出现的位置被1024替换掉了,其它的内容保持不变。 2.gcc将c文件编译成汇编文件(编译器gcc): 接下来gcc会执行 [butbueatiful@xt myhello]$gcc-S hello.i#得到汇编文件hello.s 3.as将汇编文件编译成机器码(汇编器as): [butbueatiful@xt myhello]$as hello.s-o hello.o 得到输出文件为hello.o hello.o中为目标机器上的二进制文件

ico文件的数据结构

1.制造原理 调色板模式的ico文件的数据结构,可分为 6 部分: 1.ICON文件头(6字节) 2.ICON图象信息块(16字节) 3.BMP信息头(40字节) 4.调色板(16色为64字节,256色为1024字节) 5.XOR位图 6.AND位图 而调色板模式的bmp文件的数据结构可分为 4 部分: 1.BMP文件头(14字节) 2.BMP信息头(40字节) 3.调色板(16色为64字节,256色为1024字节) 4.XOR位图 分析可知,ico图标与bmp位图有三个相同的部分(注:真彩图标与真彩位图的数据结构均没有调色板部分,所以是两个相同的部分),而且这三个部分是最重要的部分。因此,我 们只要去掉 bmp位图的 BMP文件头,再加上ICON文件头、ICON图象信息块和AND位图,就可以轻松制作出255×255象素以内的任何规格的图标了。然而……且慢,有一点却是很不轻松的:如果你想制作背景透明(屏蔽背景色)的图标,那么你还需要对 XOR位图的数据动大手术,更不轻松的是,AND 位图的数据也必须符合相应的要求,这是相当困难的;而制作有背 景色的图标的话,XOR 位图部分我们可以原封不动,AND 位图全是 0,只要计算出它的长度 来即可添加到 XOR位图数据的后面,这是很容易实现的。所以,下面我所讲的,都是制作有背景色的图标。 ICON文件头结构很简单,一共只有3个数据共6个字节,我们要给其中的“资源类型”和“图象个数” 2个数据均赋值为 1。 ICON 图象信息块有 7个数据共16字节,有5个数据要赋值:图标宽度、图标高度、颜色计数、图像数据块的长度、图象数据块相对于文件头部的偏移量。要赋值的 5个数据中,图象数据块相对于文件头部的偏移量是固定的,图像数据块的长度需要计算,其余 3个数据可从 BMP 信息头中获得资料。 AND 位图的长度必须根据从 BMP 信息头中获得的有关数据计算。 此外,还要更改 BMP 信息头中的 2个数据:一个是图象长度数据(要加上 AND 位图的长度),另一个是图像高度数据(这只要简单地将原数据×2即可)。 OK,一切都准备好了,万事俱备,只欠东风,下面就让东风劲吹吧。 2.编程 新建一个窗体,添加一个公用对话框,两个图片框,三个按纽。 窗体与图片框的ScaleMode属性均设为3,其中 Picture1 的 Autosize 属性设为 Ture。 按纽的属性设置: Command1:Caption=打开图片 Command2:Caption=数据处理,Enabled=False Command3:Caption=保存图标,Enabled=False 代码如下:

linux下编写c源程序并编译运行

姓名:雨田河南大学rjxy 班级:XXXX 实验二Linux基本操作 实验二Linux基本操作 编写c源程序并用编译运行 【需求】 ◆在当前目录下创建新文件t.c,用vi编辑器一段简单代码,代码要求在屏幕上输出 文字“Hello Linux!”; ◆用gcc编译t.c文件,并运行,查看输出结果,若结果错误,请根据提示修改;【系统及软件环境】 操作系统:Virtualbox,Fedora 13 【实验配置文件及命令】 1.配置文件: 2.命令:touch、rpm、gcc、./等

进入Linux操作系统,应用程序-> 系统工具-> 终端,输入命令:su 输入密码切换到root超级用户。 1.在当前目录建立一个新的目录test:$ mkdir test 在test目录下建立文件t.c :$touch t.c 3编辑程序源代码:vi t.c 首先按下键盘的“i”键,字符界面下方出现“insert”提示字符,此时输入以下代码: #include "stdio.h" int main() { printf("Hello Linux!\n"); return 0; } 4 保存退出:先按下“Esc”键,然后按下“shift”和“:”键,界面上出现冒号,然后输入“xq!”或者“x”对代码保存退出。 5 由于系统默认没有安装C语言编译程序,下面进行安装gcc 程序; 此处不再赘述,以下引用实验指导书: 1.gcc的安装 (1)查看gcc是否安装 rpm –q gcc (2)指定安装源 在“系统-分配光驱”里选择“Fedora-13-i386-DVD.iso” (3)查看安装源挂载位置 df命令,可查看到虚拟光驱挂载点 返回结果为:/media/Fedora 13 i386 DVD (4)使用安装源 安装的文件为RPM安装包,所在位置为安装光盘中的“Packages”目录下,可用“cd”命令进入此目录 cd /media/ Fedora 13 i386 DVD/Packages ★由于“Fedora 13 i386 DVD”名字中有空格,若直接输入,则会提示找不到此目录,可用“tab”键自动补全 【方法】cd /media/F)/P() 则可返回如下结果: cd /media/Fedora\ 13\ i386 \DVD\ /Packages (5)查看当前目录下是否有gcc安装包

win7更改文件类型图标

Win7更改文件类型图标 使用过win7的人,肯定都知道win7没有一个现成的提供你更改文件图标的工具。比如.*.rmvb、*.doc,我们并不想使用其原先的默认图标;或者是某个软件因为下载的是硬盘版,所以没有进行文件关联,从而进行关联的时候,致使这类文件图标并不美观,等等。因为这些原因的存在,使我们对win7的图标功能感觉并不方便。 在一般情况下,我们可以通过安装其它软件从而达到修改文件图标的目的。但是在这里,我将向大家介绍修改注册表的方法更改文件图标。 下面我以*.sai(一种绘图软件的文件)这类文件作为例子,向大家介绍如何在win7里面不用其它软件,通过修改注册表更改文件图标。 首先,这款软件我下载的是硬盘版,所以在最初,这款软件并没有关联上其所对应的程序。我们可以看到这个文件还是以白色的纸张为文件图标(图①)。 图① 于是接下来我们通过右击文件→属性→在常规选项卡里选择更改…(图②)

图② 接着在弹出的对话框中选中我们要用来打开的文件。因为是硬盘版的程序,所以我们只能通过选择浏览找到我们需要的程序。(图③) 图③ 然后选择我们的程序,点击确定。这样一来,我们的文件就可以直接用对应的程序运行了。但是文件的图标却并不好看。(图④) 图④ 接下来,我们就要开始修改图标。 在该程序的图标上点击右键→属性→更改图标…,在弹出的对话框里我们发现有一个类似于文件的图标。正好我们将它用来做*.sai文件类型的图标比较合适。(图⑤)*其实也可以不用这样查找图标,只要你能确定你所想要的图标位于哪个文件内,是第几个就行了(竖排顺序)。第一个是0,按照顺序依次加1。

(图⑤) 接下来,我们进入注册表。点击开始,在搜索程序和文件中输入regedit,然后按下回车。在弹出来的用户账户控制对话框中选择是(如果有的话)。 通过搜索关键字sai,发现有两个位置存储着有关后缀名的信息。 这两个地址分别为: HKEY_CLASSES_ROOT/.sai HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.sai 在第一个地址中,存在一个字符串值:(图⑥) 图⑥ 在第二个地址中的OpenWithProgids目录下,存在一个二进制值:(图⑦) 图⑦ 我们发现,其都指向了sai_auto_file这个值。 以它为关键字,最终我们在HKEY_CLASSES_ROOT下找到了这个它,这里也就是我们要用来改图标的关键。(图⑧) 图⑧

C语言程序设计慕课下编译答案(完美)

1 求最大公约数和最小公倍数(15分) #include int fun1( int m, int n) //辗转相除法求m/n的公约数 { int r; while (n) { r=m % n; m=n; n=r; } return m; } int fun2(int m,int n) //最小公倍数 { return m*n/fun1(m,n); } int main() { int a,b; scanf("%d,%d",&a,&b); //输入 printf("最大公约数:%d\n最小公倍数:%d\n",fun1(a,b),fun2(a,b)); return 0; } 2排序并插入(15分) #include void InsertionSort(int* arr, int n) // 插入排序 { int *last = 0, *next = 0, key = 0, i = 0; for (i = 1; i < n; ++i) { next = arr + i, key = *next; if (key < *arr) // 将待插的数据比第一个数据小,直接插到最前面。 { for (last = next; next != arr; next = last) *next = *--last; *arr = key; }

else // 否则从后往前遍历,找到第一个小于关键字的位置插入。 { for (last = next; key < *--last; next = last) *next = *last; *next = key; } } } void OutPutArray(const int* arr, int n) // 打印一个数组 { int i; for (i = 0; i < n; ++i) { printf("%d", arr[i]); if(i

EPLAN模版图标文件更改

请教:如何将eplan p8创建首页中的eplan图标换成自己公司的图标 我改了很多参数就是修改不了这个图标。 以下是关于《请教:如何将eplan p8创建首页中的eplan图标换成自己公司的图标(有图)》论题的回复(共9 篇) 回复人:cn18show回复时间:2009-10-13 20:07:00支持(32) |反对(43) 易展五周年生日,祝福易展,领取红包!50万大派送,快来看看!详情: https://www.360docs.net/doc/599807865.html,/5/?m=189 回复人:zhijianok回复时间:2010-3-28 23:40:00支持(27) |反对(37) 期待高人指点 回复人:linglong2回复时间:2010-5-14 11:10:00支持(31) |反对(39) 首先新建一个表格文件,如何建新表格请查阅相关手册,在新的表格文件中将原来的EPLAN图标去掉,换成自己公司的LOGO,可以是各种不同类型的图片文件,然后在设置中:项目/报表/输出为页/第26项(标题页/封页)的表格改成你新的表格文件,然后在工具/报表中

生成标题页/封页就可以了。 请注意:将自己公司的LOGO图片文件要粘贴到你的项目文件(例如:TEST.edb)的Images 文件夹中,否则你的标题页/封页中该处会是一个方格! 回复人:baobao1971回复时间:2010-7-19 16:02:00支持(23) |反对(37) 期待高人指点 回复人:chinajing回复时间:2011-8-3 19:47:00支持(23) |反对(25) 那里面的内容能修改吗?怎么修改?比如公司名称,项目描述等等。期待高手指点 回复人:crazy_mxf回复时间:2011-12-8 14:30:00支持(17) |反对(22) 有没有初级入门资料啊期待啊 回复人:竹叶三回复时间:2012-8-20 14:03:00支持(5) |反对(6) 新手来了,好好学习!!! 回复人:吗职位回复时间:2012-9-7 9:49:00支持(3) |反对(2) https://www.360docs.net/doc/599807865.html,/upload/upload12/201209070946098.jpg 我改的我们公司的LOGO 3楼正解, 回复人:siemens512回复时间:2012-12-9 20:31:00支持(3) |反对(1) 有没有入门资料啊?菜鸟求带2257632510

24位bmp位图转换为24位ico图标(透明效果)

32×32的24位bmp位图转换为24位ico图标 2009年03月03日星期二 10:25 不需任何控件和外部函数,单击窗体,输入bmp文件名和ico文件名就完成了,如果输入的文件名错误,将取消转换 Private Sub Form_Click() On Error GoTo cancel icoHead = Array(0, 0, 1, 0, 1, 0, 32, 32, 0, 0, 1, 0, 24, 0, 168, 12, 0, 0, 22, 0, 0, _ 0, 40, 0, 0, 0, 32, 0, 0, 0, 64, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, 128, 12) Dim bmp(3125) As Byte, ico(3261) As Byte begin: bmpfile = InputBox("请输入要转换的bmp文件名(全路径)") n = FileLen(bmpfile) Open bmpfile For Binary As #1 Get #1, , bmp Close #1 If bmp(18) <> 32 Or bmp(22) <> 32 Or n <> 3126 Then m2 = MsgBox("文件不是32×32的24位位图,是否重新选择?", vbYesNo + 32) If m2 = vbNo Then GoTo cancel GoTo begin End If For i = 0 To 43 ico(i) = icoHead(i) Next i For i = 62 To 3133 ico(i) = bmp(i - 8) Next i AutoRedraw = True ScaleMode = 3 Picture = LoadPicture(bmpfile) '在窗体上显示位图文件 For y = 31 To 0 Step -1 For x = 0 To 31 Step 8 For b = 0 To 7 ico(i) = ico(i) + 2 ^ (7 - b) * (-(Point(x + b, y) = RGB(192, 192, 192))) '把位图中颜色为RGB(192,192,192)的像素转换为透明 Next b i = i + 1 Next x Next y icofile = InputBox("请输入要保存的ico文件名(全路径)") Open icofile For Binary As #1 Put #1, , ico

C语言编译全过程

编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等) 1. 编译预处理 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理 伪指令主要包括以下四个方面: (1)宏定义指令,如#define Name TokenString,#undef等。 对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的Name则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。 (2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif等。 这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉 (3)头文件包含指令,如#include "FileName"或者#include 等。 在头文件中一般用伪指令#define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。 采用头文件的目的主要是为了使某些定义可以供多个不同的C源程序使用。因为在需要用到这些定义的C源程序中,只需加上一条#include语句即可,而不必再在此文件中将这些定义重复一遍。预编译程序将把头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理。 包含到c源程序中的头文件可以是系统提供的,这些头文件一般被放在/usr/include目录下。在程序中#include它们要使用尖括号(< >)。另外开发人员也可以定义自己的头文件,这些文件一般与c源程序放在同一目录下,此时在#include中要用双引号("")。 (4)特殊符号,预编译程序可以识别一些特殊的符号。 例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。 预编译程序所完成的基本上是对源程序的“替代”工作。经过此种替代,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,但内容有所不同。下一步,此输出文件将作为编译程序的输出而被翻译成为机器指令。 2. 编译、优化阶段 经过预编译得到的输出文件中,只有常量;如数字、字符串、变量的定义,以及C语

《蓝光文件夹图标制作教程》图文全解【附软件下载地址及教程】

《蓝光文件夹图标制作教程》图文全解【附软件下载地址及教程】 一、如何破解安装软件? 所提供的软件为: Imandix Cover破解版,内含“Imandix Cover.rar”与“Imandix Cover 辅助程序.rar”,以及一张“Vorlage_01000_CD.jpg”图片。 安装步骤: 1. 分别将两个压缩包解压到D盘中; 2. 安装“D:\Imandix Cover辅助程序\I mandix Cover Professional 0.9.1.2”下的Setup.exe文件,选择安装路径为“D:\Program Files”,点击“Install now”即可安装(如图);

3. 这个时候软件只是完成了初步安装,制作出来的图标没有蓝光标志,而且有水印,所以接下来让我们开始用简单的办法破解它,请看第4、5步; 4. 将“D:\Imandix Cover辅助程序\CRACK”路径下的“CoverPro.exe”(2.25M)复制并替换到安装目录“D:\Program Files”下的同名程序“CoverPro.exe”(3.89M)(如图);

5.将“Vorlage_01000_CD.jpg”复制并替换到“D:\Imandix Cover\Graphics\VProduct”路径下,这时候大功告成,软件可以正常使用了。 二、在哪里找蓝光封面素材? 在这里推荐几个国外网址: https://www.360docs.net/doc/599807865.html,/ https://www.360docs.net/doc/599807865.html,/ https://www.360docs.net/doc/599807865.html,/ https://www.360docs.net/doc/599807865.html,/ https://www.360docs.net/doc/599807865.html,/ https://www.360docs.net/doc/599807865.html,/ 注意:热门电影会有多个版本封面,R1、R2、R3、R6、R0都可能有,欧美片推荐R1(北美),华语片推荐R3或R6(港澳台及大陆,封面有中文),不推荐R4区,因为封面上的标签太大。 R1区:美国、加拿大; R2区:日本、欧洲、埃及、南非、中东; R3区:中国台湾、中国香港特别行政区、南韩、东南亚; R4区:澳洲、新西兰、中南美洲、南太平洋岛屿; R5区:俄罗斯、蒙古、印度、中亚、东欧、北韩、北非、西北亚一带等; R6区:中国(除台、港地区)

C程序编译过程详解

C程序编译过程详解 概述: C语言编译的整个过程是非常复杂的,里面涉及到的编译器知识、硬件知识、工具链知识都是非常多的,深入了解整个编译过程对工程师理解应用程序的编写是有很大帮助的,希望大家可以多了解一些,在遇到问题时多思考、多实践。一般情况下,我们只需要知道分成编译和连接两个阶段,编译阶段将源程序(*.c)转换成为目标代码(,一般是obj文件,至于具体过程就是上面说的那些阶段),连接阶段是把源程序转换成的目标代码(obj文件)与你程序里面调用的库函数对应的代码连接起来形成对应的可执行文件(exe文件)就可以了,其他的都需要在实践中多多体会才能有更深的理解。 一. 简单解释: 程序的编译过程如上图所示,分为预处理、编译、汇编、链接等几个阶段。 预处理:预处理相当于根据预处理命令组装成新的C程序,不过常以i为扩展名。 编译:将得到的i文件翻译成汇编代码。s文件。 汇编:将汇编文件翻译成机器指令,并打包成可重定位目标程序的O文件。该文件是二进制文件,字节编码是机器指令。 链接:将引用的其他O文件并入到我们程序所在的o文件中,处理得到最终的可执行文件. 二.详细解释 编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等) 编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件 1.编译预处理 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理

网址前面的小图标制作与解决360浏览器不显示ico图标问题

网址前面的小图标制作与解决360浏览器不显示ico图标方法 大家在浏览网页的时候,不知道你们注意了没有,在网址前面,有的网站有很个性化的小图标,让人眼前一亮,印象很深刻,很吸引人。你想不想也自己动手做一个呢?其实很简单的。 1.制作图标 ICO图标可以在线制作的,推荐一个制作的网站: https://www.360docs.net/doc/599807865.html,/tools/icoMaker.aspx ①.选择本地文件后,该工具会自动转化,生成预览图。点击并下载相应大小的ICO文件保存即可。 ②.本地图像文件格式可以为jpg,gif,png均可。 ③.图像大小任意,该程序会将其自动缩放。但由于图片缩放可能会稍微影响质量,推荐你使用与转化后的尺寸相同的原始图片,即16*16(网站FA VICON)或48*48(软件图标) ④.网站图标使用方法:生成后网站ICO后(16*16像素的那个),保存为favicon.ico,然后上传到网站根目录。 注意:IE8在访问贵站的时候即可自动识别。为保存IE6正常显示,请在你的网页源代码块内加入此代码: 附:圆圈里面带个字的图标方法:word里面—→格式—→中文版式—→带圈字符 效果: 2.解决360浏览器不显示favicon.ico图标方法 找到自己喜欢的图片,在线制作图标是不是很简单?但是我遇到这样一个问题:网站https://www.360docs.net/doc/599807865.html,今天添加了favicon.ico图标后,在IE8及其他浏览器下都能正常显示,但是360浏览器依然显示的是原来的图标,我试过相关操作:如清空浏览记录等办法,但结果还是没有显示出我上传的favicon.ico图标。 最近发现很多网友都遇到这样的情况,经多方查找,终于发现了其中的原因,特将自己的解决方法告诉大家,以帮助有需要的朋友,具体方法请看下面:

Linux下用gcc编译c程序

Linux下用gcc编译c程序 GCC 支持了许多不同的语言,包括C、C++、Ada、Fortran、Objective C,Perl、Python 和Ruby,甚至还有Java。 Linux 内核和许多其他自由软件以及开放源码应用程序都是用C 语言编写并使用GCC 编译的。 编译C++程序: -c 只编译不连接 g++ file1 -c -o file1.o g++ file2 -c -o file2.o g++ file1.o file.o -o exec g++ -c a.cpp 编译 g++ -o a a.o 生成可执行文件 也可以g++ -o a a.cpp直接生成可执行文件。 1. 编译单个源文件 为了进行测试,你可以创建“Hello World”程序: #include #include int main(int argc, char **argv) { printf(“Hello world!\n”); exit(0); }

使用如下命令编译并测试这个代码: # gcc -o hello hello.c # ./hello Hello wordl! 在默认情况下产生的可执行程序名为a.out,但你通常可以通过gcc 的“-o”选项来指定自己的可执行程序名称。 2. 编译多个源文件 源文件message.c包含一个简单的消息打印函数: #include void goodbye_world(void) { p rintf(“Goodbye, world!\n”); } 使用gcc的“-c”标记来编译支持库代码: # gcc -c message.c 这一过程的输出结果是一个名为message.o的文件,它包含适合连接到一个较大程序的已编译目标代码。 创建一个简单的示例程序,它包含一个调用goodbye_world的main函数 #include void goodbye_world(void): int main(int argc, char **argv) { goodbye_world();

C程序的编译链接过程

C程序的编译链接过程 编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件 1.编译预处理 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理 [析] 伪指令主要包括以下四个方面 (1)宏定义指令,如#define Name TokenString,#undef等。对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的 Name则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。 (2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif,等等。这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉 (3)头文件包含指令,如#include "FileName"或者#include 等。在头文件中一般用伪指令#define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。采用头文件的目的主要是为了使某些定义可以供多个不同的C源程序使用。因为在需要用到这些定义的C源程序中,只需加上一条#include语句即可,而不必再在此文件中将这些定义重复一遍。预编译程序将把头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理。 包含到c源程序中的头文件可以是系统提供的,这些头文件一般被放在/usr/include目录下。在程序中#include它们要使用尖括号(<>)。另外开发人员也可以定义自己的头文件,这些文件一般与c源程序放在同一目录下,此时在#include中要用双引号("")。 (4)特殊符号,预编译程序可以识别一些特殊的符号。例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。 预编译程序所完成的基本上是对源程序的“替代”工作。经过此种替代,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,但内容有所不同。下一步,此输出文件将作为编译程序的输出而被翻译成为机器指令。 2.编译阶段 经过预编译得到的输出文件中,将只有常量。如数字、字符串、变量的定义,以及C语言的关键字,如main,if,else,for,while,{,}, +,-,*,\,等等。预编译程序所要作

给Qt应用程序添加图标文件ico setWindowIcon

给Qt应用程序添加图标文件ico setWindowIcon 1:通过qmake生成makefile实现过程: (1) 找到一张图片.ico,名字改为myappico.ico;注意:Qt5.2中ico文件是256 * 256。 (2) 创建一个新的文本文档,内部添加 IDI_ICON1 ICON DISCARDABLE "myappico.ico" 并将文件重命名为myapp.rc; (3) 在myapp.pro文件最后加上RC_FILE = myapp.rc,重新生成之后,就修改成功了 2.不用qmake生成makefile实现过程: 前面两步骤一样,最后一步改为,将.rc文件加载至工程中,通过右键工程——添加——已存在文件,添加后右键.rc文件编译,重新生成可执行文件后就修改成功了 1.设置应用程序运行时所有窗口默认图标, QApplication a(argc, argv); //获得可执行程序路径 QString dir = QApplication::applicationDirPath(); 1.//设置可执行程序路径为当前工作路径 2.QDir::setCurrent(dir); 3. 4.QApplication::addLibraryPath("./plugins"); 5. QString dir = QApplication::applicationDirPath(); QApplication::addLibraryPath("./images"); a.setWindowIcon(QIcon("./images/myappico.ico")); 运行时加载ico文件,images目录要于可以执行文件同目录。

C程序的编译过程

C程序的编译过程 编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件elf 1.编译预处理 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理 [析] 伪指令主要包括以下四个方面 (1)宏定义指令,如#define Name TokenString,#undef等。对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的Name则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。 (2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif,等等。这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉 (3)头文件包含指令,如#include "FileName"或者#include 等。在头文件中一般用伪指令#define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。采用头文件的目的主要是为了使某些定义可以供多个不同的C源程序使用。因为在需要用到这些定义的C源程序中,只需加上一条#include语句即可,而不必再在此文件中将这些定义重复一遍。预编译程序将把头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理。 包含到c源程序中的头文件可以是系统提供的,这些头文件一般被放在/usr/include目录下。在程序中#include它们要使用尖括号(<>)。另外开发人员也可以定义自己的头文件,这些文件一般与c源程序放在同一目录下,此时在#include中要用双引号("")。 (4)特殊符号,预编译程序可以识别一些特殊的符号。例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。 预编译程序所完成的基本上是对源程序的“替代”工作。经过此种替代,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处

给自己编写的C语程序编译的exe添加ico图标

1 实验目的: 给一个经过vc++编译生成的exe文件添加一个ico图片。 实验前图片: 试验后图片: 2 实验环境: Visual C++ 6.0 ,一个c语言代码,一个ico图片(若图片为jpg、jpeg、gif和png,可以在线制作,网址:https://www.360docs.net/doc/599807865.html,/old.html)。 3 实验背景: 本人在网上找到了一个黑客数字雨的c语言代码,编译生成一个exe文件后,没有图标,于是我就想到平时用的程序都有一个图标,很美观。于是我就在qq群和网上查询。经过一番努力,终于实现了。就总结了此篇文档,希望对此感心情的学习者有所帮助。本文档实验环境可能不具有普遍性,如有疑问可以qq交流,2514329386,非诚勿扰,谢谢。 4 实验步骤: 1.打开vc++,然后打开你的c语言代码,如图1-1;

图1-1 编译生成一个没有图标的exe文件,如图1-2。(这要求你会用vc++编译exe文件哦,可以qq交流哦,当然,大神们看了这个文档可能要笑了,对于他们这是小菜一碟,其实很简单, 操作几次就会了) 2.将ico图片放在exe文件所在的目录下,如图2-1 3.回到图1-1,点标题栏的插入,再选择资源。如图3-1;

图3-1 弹出图3-2,选择图中的icon,再选着引入; 图3-2 弹出图3-3,选择你的ico图片,再点引入; 图3-3 接着弹出图3-4;点保存;

弹出图3-5,输入文件名,图中为Script1.rc,你可以改为test.rc;在按保存;又回到了图3-4. 在Debug文件夹中多了两个文件,如图3-6

图3-6 在图3-4中选择工程下的添加到工程下的文件如图3-7后弹出图3-8 图3-7 图3-8 选择刚才保存的test.rc(我把刚才的Script1.rc改成了test.rc了)再按确定。然后,点标题栏下的组建下的组建(快捷键为F7)如图3-9

相关文档
最新文档