본문 바로가기

NSIS/Reference

[NSIS] Install 영역과 Uninstall 영역 모두에서 호출 가능한 함수? 매크로? 기본 포맷

반응형
!macro _FuncName un
	Function ${un}_FuncName
		# 함수 정의
		Pop $0
		MessageBox MB_OK "_FuncName [$0]"
		Push "return $0 from _FuncName"
	FunctionEnd
!macroend
!insertmacro _FuncName ""
!insertmacro _FuncName "un."
!macro FuncName OUTPUT param
	Push "${param}"
	!ifndef __UNINSTALL__
		Call _FuncName
	!else
		Call un._FuncName
	!endif
	Pop "${OUTPUT}"
!macroend
!define FuncName "!insertmacro FuncName"
!macro _FuncName2 un
	Function ${un}_FuncName2
		# 함수 정의
		Pop $1
		MessageBox MB_OK "_FuncName2 [$1]"
		${FuncName} $0 "test $1"
		MessageBox MB_OK "_FuncName2 000 [$0]"
	FunctionEnd
!macroend
!insertmacro _FuncName2 ""
!insertmacro _FuncName2 "un."
!macro FuncName2 param
	Push "${param}"
	!ifndef __UNINSTALL__
		Call _FuncName2
	!else
		Call un._FuncName2
	!endif
!macroend
!define FuncName2 "!insertmacro FuncName2"

 

 

호출은 'install' 영역과 'uninstall' 영역 모두에서 아래와 같이 호출하면 된다.

${FuncName2} "abcd"
반응형