2013-10-05 145 views

回答

1
StrCpy $2 "" 
badrange: 
    System::Call 'advapi32::SystemFunction036(*i0r0,i1)' 
    IntCmpU $0 127 "" "" badrange ; Limit to ASCII, IsCharAlphaNumeric is locale specific 
    System::Call 'user32::IsCharAlphaNumericA(ir0)i.r1' 
    StrCmp $1 0 badrange 
    IntFmt $0 "%c" $0 
    StrCpy $2 "$2$0" 
    StrLen $0 $2 
    IntCmpU $0 10 "" badrange 
DetailPrint $2 
+0

你能解释一下'* i0r0'是什么意思? (看[文档](http://nsis.sourceforge.net/Docs/System/System.html),我期望'* i0'是类型,'r0'是值,但我不能找出'* i0'是什么类型的。) – John

+0

@John'* i'是类型,(在C/C++中为'INT32 *'),'0'是输入,'r0'是输出。您通常将此视为'* i.r0',但我明确将输入值设置为0。你也可以把它分开来使它更清晰:'* i 0 r0' – Anders

+0

啊,谢谢。这实际上使事情变得更清楚。 – John

相关问题