怎样告诉编译器自动编译指定的资源文件?(50分)

  • 主题发起人 主题发起人 wangxd
  • 开始时间 开始时间
W

wangxd

Unregistered / Unconfirmed
GUEST, unregistred user!
大家都知道可以用{$R xxx.res}指令将资源编译进exe文件。
现在我做了一个组件,有一个style属性可以在ide中选择不同的风格,要求选择不同的style值时,编译器能够“自动”可选择的编译不同的res文件(假设我有3个res文件,对应3种style的内容),这样编译后也可以减少exe文件的大小。
换句话说就是{$R xxx.res}可否放在程序中通过:
if style=1 then
{$R a1.res}
else
if style=2 then
{$R a2.res};
来实现?
 
可以采用条件编译,具体语法忘了^_^,你找找参考书吧,我以前见过,肯定可以做到的。
 
你可应用IFDEF来实现,具体如下:
{$IFDEF AAA}
{$R a1.res}
{$ENDIF}
{$IFDEF BBB}
{$R a2.res}
{$ENDIF}
 
问题是{$IFDEF AAA}中的AAA可以是一个变量吗?比如string类型的变量?
 
以可以事先定义AAA或BBB,就可以包含不同的RES了[:)]
 
是aaa还是bbb是要看用户在组件的style类型的选择而定的,不是固定的
 
能实现吗?
 
不可能~~~你的STYLE是运行期选择的,如果用条件编译,根本就不会把那个文件带进去。

你还是把资源文件全INCLUDE进去,然后在运行期自己从EXE的资源里面选吧。

或者,像WINAMP一样,把具体的各个图标之类的全都放在一个目录下,运行期从硬盘里面读。
 
同意hlsl的方法。很多支持换肤功能的软件都是把图标或都图片放在指定的目录下。动态的从硬盘上加载。
 
不行,就用dll
 
多人接受答案了。
 
后退
顶部