您的位置:首页 > 其它

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 的选项,后来将预编译头设置在设置,问题搞定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  exe preprocessor resources c