NSIS脚本调用C语言写的插件

其实NSIS的官网已经提供了很多别人开发的插件了,今天需要用到GetVersion这个插件,这是不维护的插件了,不推荐用,但是由于现实中的问题,导致我不得不用这个插件。

所以就下载下来了。

下载下来之后,作者已经把插件源码打包成VS工程了,感兴趣可以看看底层原理。我只需要二进制的模块,所以把GetVersion.dll拷贝到了NSIS的插件目录下,就能使用了

以下是NSIS的脚本代码:

Var /GLOBAL WINDOWS_ARCHITECTURE
;这里用了GetVersion插件,但是该插件的作者已经停止维护了,
;但是不得已,需要使用,把GetVersion.dll放到了NSIS的插件目录下
GetVersion::WindowsPlatformArchitecture
Pop $WINDOWS_ARCHITECTURE ; 32 or 64

 

WINDOWS_ARCHITECTURE 这个变量的值就是32或者64了,我后面用${If}  "$WINDOWS_ARCHITECTURE" != "${Version}"  做下比较

就可以知道当前编译环境(编译脚本源文件),和安装包之后的运行环境了。如果不一致就告诉客户不能运行此程序 Version 这个变量是通过向NSIS的编译器通过/D 而获得的,/D后面加Version=%Platform%得到的

posted @ 2014-03-13 17:35  foo__hack  阅读(382)  评论(0编辑  收藏  举报