vc中在不同的预编译选项中编译出不同的exe图标

本文介绍了一种在程序中根据不同编译选项动态更改EXE图标的解决方案。文章详细记录了作者遇到的问题及其解决过程,包括如何正确配置预编译宏以实现图标切换。

最近在程序中修改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 的选项,后来将预编译头设置在设置,问题搞定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值