使用此功能保存 NSI​​S 中显示的安装日志

    !define LVM_GETITEMCOUNT 0x1004
    !define LVM_GETITEMTEXT 0x102D

    Function DumpLog
      Exch $5
      Push $0
      Push $1
      Push $2
      Push $3
      Push $4
      Push $6

      FindWindow $0 "#32770" "" $HWNDPARENT
      GetDlgItem $0 $0 1016
      StrCmp $0 0 exit
      FileOpen $5 $5 "w"
      StrCmp $5 "" exit
        SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6
        System::Alloc ${NSIS_MAX_STRLEN}
        Pop $3
        StrCpy $2 0
        System::Call "*(i, i, i, i, i, i, i, i, i) i \
          (0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1"
        loop: StrCmp $2 $6 done
          System::Call "User32::SendMessageA(i, i, i, i) i \
            ($0, ${LVM_GETITEMTEXT}, $2, r1)"
          System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)"
          FileWrite $5 "$4$\r$\n"
          IntOp $2 $2 + 1
          Goto loop
        done:
          FileClose $5
          System::Free $1
          System::Free $3
      exit:
        Pop $6
        Pop $4
        Pop $3
        Pop $2
        Pop $1
        Pop $0
        Exch $5
    FunctionEnd

nsis website ,我得到错误
lvm_getitemcount already defined

编译安装程序脚本时。有任何想法吗?

最佳答案

编译器告诉你这个问题!

其他一些代码已经定义了该符号,可能在您包含的标题中。

注释掉第二个定义或检查它是否已经被定义:

!ifndef LVM_GETITEMCOUNT
!define LVM_GETITEMCOUNT 0x1004
!endif
!ifndef LVM_GETITEMTEXT
!define LVM_GETITEMTEXT 0x102D
!endif

关于installation - NSIS INTALLER : lvm_getitemcount already defined,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29418718/

10-10 16:20