我理解NSIS脚本的问题是我从一些安装程序中使用7zip解压缩得到的。我有几个问题:
.onInit
函数在执行任何操作之前执行吗?System::Call "* (&t256) p .r5 "
来电的含义是什么?正如我从文档中所知道的那样创建了新的结构但是&t256
是什么?Messagebox MB_OK "$r0"
打印指针*$1(&t255 .r0)
这样的电话我希望获得$ 1的价值。谢谢
答案 0 :(得分:0)
.onInit
是执行的.NSI的第一部分。 (在调用InstallDirRegKey
).onInit
作为第一个操作
t
是一种字符串类型,与C / C ++中的TCHAR
相同。 *(&t256)p.r5
是256个字符的缓冲区,足以容纳文件名。它分配内存并将地址存储在$5
。
r0
是系统插件寄存器语法,它与NSIS代码中的$0
相同,而不是$R0
,这是一个不同的寄存器!
如果$1
包含内存中字符串的地址,*$1(&t255 .r0)
将在$0
中提取/放置字符串的前255个字符。