Installation ${NSD_GetText}返回一个空的.string-I';我卡住了

Installation ${NSD_GetText}返回一个空的.string-I';我卡住了,installation,nsis,gettext,nsdialogs,Installation,Nsis,Gettext,Nsdialogs,我正在尝试使用自定义设置表单包装安装: configform.nsdInc: ; ========================================================= ; This file was generated by NSISDialogDesigner 1.4.2.0 ; http://coolsoft.altervista.org/nsisdialogdesigner ; ; Do not edit it manually, use NSISDialog

我正在尝试使用自定义设置表单包装安装:

configform.nsdInc:

; =========================================================
; This file was generated by NSISDialogDesigner 1.4.2.0
; http://coolsoft.altervista.org/nsisdialogdesigner
;
; Do not edit it manually, use NSISDialogDesigner instead!
; =========================================================

; handle variables
Var hCtl_configForm
Var hCtl_configForm_imgQuality
Var hCtl_configForm_wpctrlPort
Var hCtl_configForm_wpctrlIp
Var hCtl_configForm_atmCmdPort
Var hCtl_configForm_atmCmdIp
Var hCtl_configForm_Label3
Var hCtl_configForm_Label2
Var hCtl_configForm_Label1    

Var T0
Var T1
Var T2
Var T3
Var T4    

!include nsDialogs.nsh

; dialog create function
Function fnc_configForm_Create

  ; === configForm (type: Dialog) ===
  nsDialogs::Create 1018
  Pop $hCtl_configForm
  ${If} $hCtl_configForm == error
    Abort
  ${EndIf}
  !insertmacro MUI_HEADER_TEXT "Dialog title..." "Dialog subtitle..."

  ; === imgQuality (type: ComboBox) ===
  ${NSD_CreateComboBox} 77.67u 43.69u 63.85u 12.92u ""
  Pop $hCtl_configForm_imgQuality
  ${NSD_CB_AddString} $hCtl_configForm_imgQuality "15"
  ....
  ${NSD_CB_AddString} $hCtl_configForm_imgQuality "97"

  ; === wpctrlPort (type: Text) ===
  ${NSD_CreateText} 235.65u 24u 57.92u 12.31u ""
  Pop $hCtl_configForm_wpctrlPort 

  ; === wpctrlIp (type: Text) ===
  ${NSD_CreateText} 77.67u 24u 154.03u 12.31u ""
  Pop $hCtl_configForm_wpctrlIp

  ; === atmCmdPort (type: Text) ===
  ${NSD_CreateText} 235.65u 3.69u 57.92u 12.31u ""
  Pop $hCtl_configForm_atmCmdPort 

  ; === atmCmdIp (type: Text) ===
  ${NSD_CreateText} 77.67u 3.69u 154.03u 12.31u ""
  Pop $hCtl_configForm_atmCmdIp


  ; === Label3 (type: Label) ===
  ${NSD_CreateLabel} 7.9u 44.92u 65.82u 11.69u "Image quality:"
  Pop $hCtl_configForm_Label3

  ; === Label2 (type: Label) ===
  ${NSD_CreateLabel} 7.9u 25.85u 65.82u 11.69u "WPCTRL IP\Port:"
  Pop $hCtl_configForm_Label2

  ; === Label1 (type: Label) ===
  ${NSD_CreateLabel} 7.9u 5.54u 65.82u 11.69u "ATMCMD IP\Port:"
  Pop $hCtl_configForm_Label1

FunctionEnd

; dialog show function
Function fnc_configForm_Show
  Call fnc_configForm_Create
  nsDialogs::Show
FunctionEnd

Function fnc_save_config
    ${NSD_GetText} hCtl_configForm_atmCmdIp $T0
    ${NSD_GetText} hCtl_configForm_atmCmdPort $T1
    ${NSD_GetText} hCtl_configForm_wpctrlIp $T2
    ${NSD_GetText} hCtl_configForm_wpctrlPort $T3
    ${NSD_GetText} hCtl_configForm_imgQuality $T4

    FileOpen $5 "$INSTDIR\M3Remote.xml" w
    FileWrite $5 "<Settings><Login>Remote</Login> <Communications><WP><Ip>"
    FileWrite $5 $T2
    FileWrite $5 "</Ip><Port>"
    FileWrite $5 $T3
    FileWrite $5 "</Port>"
。。。。。。。。。 分段结束

Function un.onUninstSuccess
.....
FunctionEnd

Function un.onInit
....
FunctionEnd

Section uninstall
 ...............
SectionEnd
问题是,我完全搞不清楚到底出了什么问题 ${NSD_GetText} ,因为它总是返回一个空字符串。
我被卡住了

您没有向
${NSD_GetText}
传递有效的窗口句柄,因为您忘记了变量名上的
$
前缀。将
${NSD_GetText}hCtl_configForm_atmCmdIp$T0
更改为
${NSD_GetText}$hCtl_configForm_atmCmdIp$T0

Function un.onUninstSuccess
.....
FunctionEnd

Function un.onInit
....
FunctionEnd

Section uninstall
 ...............
SectionEnd