vc中在不同的预编译选项中编译出不同的exe图标
2010-06-08 17:31
288 查看
最近在程序中修改exe图标的时候很是郁闷。有人会说,“其实很简单啊,就是把IDR_MAINFRAME对应的icon文件改成自己需要就是了啊”。 没错其实就这么简单。
但是如果要依据不同的编译选项生成不同的图片呢?当然,我们会想到使用预编译头,通过不同编译选项的预编译头就可以办到。对的,大家的思路应该都是正确的。
就在这个时候,本人在property -> C/C++ -> Preprocessor加入预编译头的设置。比如这里我加入(_A_)、(_B_)用来区分A和B不同的编译选项。在资源rc的code中加入如下代码:
#ifdef _A_
IDR_MAINFRAME ICON "res//A.ico"
#elif _B_
IDR_MAINFRAME ICON "res//B.ico"
#endif
编译程序,发现居然exe的icon不正确,怎么回事呢?为什么找不到,明明设置了预编译头的。
再加入一个#else 的判断显示ICON("res//C.ico"),发现exe一直会显示C图标。
查看property 中的每一个选项,发现有个Resources的属性,这里居然有个直接设置资源的属性,点开查看有个Preprocessor Definitions 的选项,后来将预编译头设置在设置,问题搞定。
但是如果要依据不同的编译选项生成不同的图片呢?当然,我们会想到使用预编译头,通过不同编译选项的预编译头就可以办到。对的,大家的思路应该都是正确的。
就在这个时候,本人在property -> C/C++ -> Preprocessor加入预编译头的设置。比如这里我加入(_A_)、(_B_)用来区分A和B不同的编译选项。在资源rc的code中加入如下代码:
#ifdef _A_
IDR_MAINFRAME ICON "res//A.ico"
#elif _B_
IDR_MAINFRAME ICON "res//B.ico"
#endif
编译程序,发现居然exe的icon不正确,怎么回事呢?为什么找不到,明明设置了预编译头的。
再加入一个#else 的判断显示ICON("res//C.ico"),发现exe一直会显示C图标。
查看property 中的每一个选项,发现有个Resources的属性,这里居然有个直接设置资源的属性,点开查看有个Preprocessor Definitions 的选项,后来将预编译头设置在设置,问题搞定。
相关文章推荐
- VC2008中影响exe大小和速度的全部编译选项
- VC2008中影响exe大小和速度的编译选项
- vc2008 预处理器 使用EXE和DLL不同编译
- 如何修改VC编译后生成的EXE文件的图标
- VC++6.0编译选项(CL.exe编译选项)及VC支持文件类型
- VC中对生成的exe文件大小和速度有影响的编译选项
- VC2013同一个工程生成的exe文件显示不同的图标
- vc 编译运行时出现 cannot open Debug/**.exe
- VC++ 替换 exe 可执行文件的图标
- VC动态库,静态库编译选项的使用
- VC6中编译、运行程序选项
- VC编译选项
- cmake 编译opencv 出现 The C++ compiler "C:/Program Files/Microsoft Visual Studio 10.0/VC/bin/cl.exe
- VC编译EXE在没装VC的电脑上运行出错问题解决!
- VC2008编译时提示生成“cmd.exe”时出错
- vc中Multi-threaded DLL编译选项的区别
- 【转】VC++编译选项详解
- VC编译选项 /MT /MTd /MD /MDd
- VC编译选项里面如何增加 win32 unicode release项
- vc 编译连接选项