Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NSIS INTALLER: lvm_getitemcount already defined

Using this function to save the install log that is displayed in NSIS

    !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

from the nsis website, I get the error

lvm_getitemcount already defined 

when compiling the installer script. Any ideas?

like image 207
JackNova Avatar asked Mar 16 '23 13:03

JackNova


1 Answers

The compiler is telling you the problem!

Some other code has already defined that symbol, probably in a header you included.

Comment out the second definition or check if it already is defined:

!ifndef LVM_GETITEMCOUNT 
!define LVM_GETITEMCOUNT 0x1004
!endif
!ifndef LVM_GETITEMTEXT 
!define LVM_GETITEMTEXT 0x102D
!endif
like image 189
Anders Avatar answered Mar 23 '23 16:03

Anders