2010-09-20 60 views

回答

0

Inno Setup中使用的Pascal脚本似乎根本不支持指针。也许你可以通过一个cardinal(如果是32位),或者你可以将你的代码写入一个外部DLL并从Inno Setup安装程序中调用它。

+0

谢谢,我会试试看。 – Phantom 2010-09-20 22:16:38

2

很少迟到。 xD 要解决此问题,必须使用关键字'var'将函数参数作为变量进行通告。这是Pascal函数参数中变量的标准声明指针方法。

哈,我会想到逻辑结尾。首先,在所有32位的情况下,InnoSetup的执行过程,也就是说,你没有人阻止声明新的类型(“PVOID”或“指针”)相应的维度(类型PVOID = Cardinal; Pointer = Integer;等等)而且更多的只是为了方便感知。其次,在发布外部API函数时,通过变量(通过关键字“var”)替换索引发生的绰绰有余。第三,由于Pascal脚本中内存的具体组织,一些API函数将无法解决这些变量,因此您无法阻止声明外部函数与内存(GetMemory,FreeMemory,FillMemory + GetMemory = AllocMemory)从Kernel32.dll。 GetMemory只是返回内存中的索引。在第四种情况下,为了从带有索引的块中提取数据,没有人会阻止使用来自同一Kernel32.dll中的CopyMemory,StringCchCopyA,lstrcpynA等复制功能,其中输出参数将是必要维度的变量(var),并且入口,块上的索引偏移到必要的值。

+0

对不起,我可能看起来很狡猾,但我可能回应了以前的评论。 (我的答案已更正并扩展) – 2016-06-02 09:16:17

相关问题