我正在尝试使用此代码在Inno Setup中定义x86 x64预处理器变量,但它不起作用:
#if IsWin64
#define OSBITS "x64"
#else
#define OSBITS "x86"
#endif
有人可以帮我定义OSBITS
吗?
提前致谢...
答案 0 :(得分:0)
#if
是预处理程序指令。因此,它在编译时进行评估。您不能使用它来选择基于目标机器架构的值,因为它仅在运行时(安装时)已知。
由于这个原因,甚至没有IsWin64
预处理器功能。
如果您需要在某些Inno Setup指令中使用x64 / x86值,通常可以使用scripted constant。
一个简单的例子:
[Setup]
AppName=My Program {code:OSBits}
[Code]
function OSBits(Param: String): string;
begin
if IsWin64 then
Result := 'x64'
else
Result := 'x86';
end;