当我尝试卸载这样的字体时......
Section "un.Uninstall"
StrCpy $FONT_DIR $FONTS
!insertmacro RemoveTTFFont "$FONTS\Vani.ttf"
!insertmacro RemoveTTFFont "$FONTS\Vanib.ttf"
SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=5000
SectionEnd
我收到以下错误消息:
Error in macro GetFileNameCall on macroline 2
Error in macro RemoveTTFFont on macroline 9
(...) aborting process
换句话说,FontReg.nsh
文件中的以下部分出现了问题:
!ifmacrondef GetFileNameCall
!macro GetFileNameCall _PATHSTRING _RESULT
Push `${_PATHSTRING}`
Call GetFileName
Pop ${_RESULT}
!macroend
!endif
!ifndef GetFileName
!define GetFileName `!insertmacro GetFileNameCall`
Function GetFileName
Exch $0
Push $1
Push $2
StrCpy $2 $0 1 -1
StrCmp $2 '\' 0 +3
StrCpy $0 $0 -1
goto -3
StrCpy $1 0
IntOp $1 $1 - 1
StrCpy $2 $0 1 $1
StrCmp $2 '' end
StrCmp $2 '\' 0 -3
IntOp $1 $1 + 1
StrCpy $0 $0 '' $1
end:
Pop $2
Pop $1
Exch $0
FunctionEnd
!endif
有人,如果不告诉我如何解决这个问题,至少可以指出我正确的方向吗? 这对社区很有用,因为很多人都有这个问题,但还没有人解决它,就像这里一样 - http://forums.winamp.com/showthread.php?t=245701
答案 0 :(得分:0)
遗憾的是,我没有收到任何答案,但我必须分享我提出的解决方案,因为我看到很多人遇到了同样的问题。
宏中有一个删除字体的错误,即“RemoveTTF”,“RemoveTTFFont”以及以下文件中类似的声音:FontReg.nsh,FontRegAdv.nsh。所有这些都使用名为“GetFileNameCall”的相同函数,这会导致错误。这个函数的问题是它将“FontName”和“FontFileName”看作同一个项目!事实上,字体文件名与字体名不同。我通过从FontRegAdv.nsh复制所需的代码并用实际的字体文件名和字体名替换FontFileName和FontName变量来解决了这个问题。