I made some new tests. I compiled my installer as ANSI (NSIS 3.0 b1) with LoRd_MuldeR's StdUtils plugin. There was no problems!
EDIT: No, I checked log and NSIS (ANSI) just skip broken paths (with system.dll in path). Not showing messageboxes... strange.
I am now removing all external plugins and test adding each one after test...
@Anders
Have you got any idea what could be a problem? Maybe NSIS Unicode has some bug? But how to know what is the problem?
Edit2: I use in my code the following system.dll calls:
; 1. Get System Tick
System::Call 'kernel32::GetTickCount(v)i.r9'
; 2. Example of creating image control (in nsDialogs Page)
nsDialogs::CreateControl STATIC ${WS_VISIBLE}|${WS_CHILD}|${WS_CLIPSIBLINGS}|${SS_ICON} 0 10u 95u 100% 100% ""
Pop $R1
StrCpy $0 $PLUGINSDIR\Images\IT_Auto_Install.ico
System::Call "user32::LoadImage(i 0, t r0, i ${IMAGE_ICON}, i 0, i 0, i ${LR_LOADFROMFILE}) i.s"
Pop $IT_TYPE_ICONS
SendMessage $R1 ${STM_SETIMAGE} ${IMAGE_ICON} $IT_TYPE_ICONS
; Deleting object
System::Call "gdi32:DeleteObject(i $IT_TYPE_ICONS)"
; 3. Refreshing Shell Icons
System::Call "Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)"
; 4. Creating Mutex
System::Call "kernel32::CreateMutexW(i 0, i 0, t 'My_Mutex') i .r1 ?e"
; 5. Getting System resolution
System::Call "user32::GetSystemMetrics(i 0) i .r0"
System::Call "user32::GetSystemMetrics(i 1) i .r1"
; 6. Free Unused Library (when registering dll with regsvr32)
System::Call 'Ole32::CoFreeUnusedLibraries()'
System::Call 'Ole32::CoFreeUnusedLibraries()'
Am I using it correctly for Unicode NSIS?
Should I call it in other way in ANSI NSIS?