Very nice. On the plug-in side of things, will ANSI plug-ins be defunct now?
Stu
Unicode
573 posts
No, because people wanting to target Windows 9x & such still need ANSI installer & ANSI plugins.
However I have created a new version of the plugin API, mostly compatible with the current version, that allows plugins to work with both ANSI & Unicode installer (even if the plugin itself is compiled as ANSI or Unicode), making the conversions transparently.
I will commit that soon to SVN.
However I have created a new version of the plugin API, mostly compatible with the current version, that allows plugins to work with both ANSI & Unicode installer (even if the plugin itself is compiled as ANSI or Unicode), making the conversions transparently.
I will commit that soon to SVN.
Hold it. Are you saying that there could be an official release from the main NSIS page with both ANSI and Unicode versions in the same package?
If this is true, this is HUGE for us, as we are only allowed by our legal department to use the versions of NSIS that come from the main page/official site. We are not allowed to use other versions (Unicode NSIS from scratchpaper, etc.)
If this is true, this is HUGE for us, as we are only allowed by our legal department to use the versions of NSIS that come from the main page/official site. We are not allowed to use other versions (Unicode NSIS from scratchpaper, etc.)
@CrushBug: Official SVN has working unicode build (It is pretty much the same code as the fork, at some point the merge will be complete hopefully)
Wizou,Originally Posted by Wizou View PostNo, because people wanting to target Windows 9x & such still need ANSI installer & ANSI plugins.
However I have created a new version of the plugin API, mostly compatible with the current version, that allows plugins to work with both ANSI & Unicode installer (even if the plugin itself is compiled as ANSI or Unicode), making the conversions transparently.
I will commit that soon to SVN.
Is it possible to write src\Docs\src\*.but files with utf8 encoding (and Halibut could parse it and create output html files with default utf8 encoding, that HTML Help Help Workshop could compile to chm)?
Would be much simple for me, if it use this codepage, not default windows.
Could someone with skills look into it? Or, this is to much work, and it is not worth...
-Pawel
I'm not much aware about Halibut, and your demand is quite independent from porting NSIS code to Unicode.. I guess I won't be doing that soon..
Maybe someone else will look into it..
Maybe someone else will look into it..
In Unicode NSIS this plug-in works incorrectly.
Is there any other plug-in to get IPs of the computer or may be anybody could help with the solution for this plug-in?
Is there any other plug-in to get IPs of the computer or may be anybody could help with the solution for this plug-in?
If the plug-in is not Unicode then you will need to rebuild it.
How about this? http://www.codeproject.com/KB/vbscript/ipaddress.aspx
Stu
How about this? http://www.codeproject.com/KB/vbscript/ipaddress.aspx
Stu
Does rebuild mean anything more than compiling nsi-script via Make NSISW (Unicode) program? This plug-in is dll - how can I rebuild it?Originally Posted by Afrow UK View PostIf the plug-in is not Unicode then you will need to rebuild it.
And also I failed to understand how and what for to use a2u.exe program.
Actually dll on C++ with code for determining IP-interfaces of the computer I'll create by myself. I was interested why former plug-in don't work.Originally Posted by Afrow UK View PostHow about this? http://www.codeproject.com/KB/vbscript/ipaddress.aspx
To get the IP address, have a look at the IpConfig plugin:
Here the NSIS Armenian translation!
Building under Linux
I have downloaded nsis-2.46-Unicode-src.zip and am attempting to build the makensis utility under Linux. The command I am using is:
A more serious problem are these errors:
I can build a Linux version of makensis using the official (non-Unicode) version of nsis 2.46 without any problems.
I have downloaded nsis-2.46-Unicode-src.zip and am attempting to build the makensis utility under Linux. The command I am using is:
scons UNICODE=yes SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no PREFIX=/xp-e/Program\ Files/NSIS PREFIX_DEST=/tmp/nsis install-compilerOne minor problem was that I had to rename the 'Scons' directory to 'SCons'.
A more serious problem are these errors:
In file included from Source/build.cpp:24:tchar.h and windows.h are presumably MS Windows files, which wouldn't make a lot of sense for building a Linux executable.
build/urelease/config/nsis-version.h:3:19: error: tchar.h: No such file or directory
In file included from Source/manifest.h:22,
from Source/build.h:30,
from Source/build.cpp:26:
Source/tstring.h:24:21: error: windows.h: No such file or directory
In file included from Source/build.h:22,
from Source/build.cpp:26:
I can build a Linux version of makensis using the official (non-Unicode) version of nsis 2.46 without any problems.
You could try the official SVN, it (should) compile as unicode now
Thanks Anders. I've just tried that, but a Linux build fails with the error "No version of Visual Studio compiler found".
There's a note in the TODO.txt file: "Make Unicode version compile on other compilers / platforms.", so I guess that it currently only builds on Windows.
There's a note in the TODO.txt file: "Make Unicode version compile on other compilers / platforms.", so I guess that it currently only builds on Windows.
I don't really see how a VS compiler error message is related to unicode. Are you able to compile the ansi version? (TODO.txt has not been touched in years AFAIK)
I get the same error if I try to compile the SVN ANSI version (i.e. without the 'UNICODE=yes' option).
The note in TODO.txt was added by 'wizou' on 2010-03-26.
The note in TODO.txt was added by 'wizou' on 2010-03-26.
The problem might be with scons and not nsis (scons did some major changes recently, try both 1.2 and 1.3 and whatever the latest version is) It might also help if you post the full scons command you used (I can't build the unicode version myself, so I can't really help there)
I was using scons 1.3.0, but I've just downloaded and tried the latest version (2.0.1) - unfortunately with the same symptoms. I don't have a copy of 1.2 to try. Version 1.3.0 works fine with nsis 2.46 - which makes it seem likely that something has changed in nsis.
The full scons command that I am using is in my original post.
The full scons command that I am using is in my original post.
Doh!Originally Posted by timufea View PostThe full scons command that I am using is in my original post.
I know I had to revert to scons 1.2 to build, but that is on windows. Why it tries to use the VS toolchain on POSIX, I have no idea. IIRC there is some scons switch you can use to force the toolchain, TOOLSET= maybe... (There are several older forum threads about building on POSIX, have you checked those for hints?)
It looks to me that the "No version of Visual Studio compiler found" issue was introduced by the "added MSVS_VERSION option to scons command-line to specify which compiler to use" change committed into the subversion repository as revision 6110.
nsis.svn.sourceforge.net/viewvc/nsis/NSIS/trunk/SConstruct?r1=6102&r2=6110
A Microsoft Visual C++ build environment is explicitly defined In line 180 of the SConstruct file.
In my humble opinion the build environment should be automatically detected by scons
and an explicit definition of the build environment is counterproductive.
I assume the same problem also occurs if you try to natively build on a Windows platform with mingw32 (www.mingw.org).
nsis.svn.sourceforge.net/viewvc/nsis/NSIS/trunk/SConstruct?r1=6102&r2=6110
A Microsoft Visual C++ build environment is explicitly defined In line 180 of the SConstruct file.
In my humble opinion the build environment should be automatically detected by scons
and an explicit definition of the build environment is counterproductive.
I assume the same problem also occurs if you try to natively build on a Windows platform with mingw32 (www.mingw.org).
Yeah, I don't think wizou has done any testing on anything other than recent versions of VS
I tried with VS 6.0, VS 7.1 Toolkit, VS 8.0 Express.
Scons seemed to work with them.
However, note that only VS 8.0 can be used to compile Unicode version of NSIS as only VS 8.0 contains a C++ Standard Runtime Library that contains the necessary Unicode classes.
Scons seemed to work with them.
However, note that only VS 8.0 can be used to compile Unicode version of NSIS as only VS 8.0 contains a C++ Standard Runtime Library that contains the necessary Unicode classes.
Plans to Merge Unicode NSIS with Mainstream NSIS?
Quick question: Are there any plans to merge Unicode NSIS with mainstream NSIS?
Quick question: Are there any plans to merge Unicode NSIS with mainstream NSIS?
The merging is almost complete, with the right setup, you can compile unicode nsis from the official SVN todayOriginally Posted by nsnb View PostQuick question: Are there any plans to merge Unicode NSIS with mainstream NSIS?
Greetings 🙂
Tell me please how to solve this problem:
In the script calls
Code:
System::Call 'msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "C:\1.mp3") i .r0'
Depending on your line when you compile the setup file, the function either does not find the file 1.mp3, or can not identify the driver device via MCI, or compile the setup file does not complete and displays a message that the file test. Exe can not be created. 🙁
In version Nsis ANSI this function works correctly. 🙄
Using version Nsis-Unicode (2.46)
MfG MaGoth, WoG.ru-Community.
Tell me please how to solve this problem:
In the script calls
Code:
System::Call 'msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "C:\1.mp3") i .r0'
Depending on your line when you compile the setup file, the function either does not find the file 1.mp3, or can not identify the driver device via MCI, or compile the setup file does not complete and displays a message that the file test. Exe can not be created. 🙁
In version Nsis ANSI this function works correctly. 🙄
Using version Nsis-Unicode (2.46)
MfG MaGoth, WoG.ru-Community.
MCIWndCreateW maybe?
Tnx.Originally Posted by Anders View PostMCIWndCreateW maybe?
No, it does not WIN API, a generic driver for sound without using external players, only the operating system.
This option will not work. He was tested the day before the first, like many others.
The function works correctly, it was tested in parallel and in Nsis ANSI 2.46, the result of the compilation of which was fully working file test.exe. In this version the sound is!
When compiling the same file in version Nsis UNICOD 2.46, errors occur.
Hence the conclusion, this script unicode itself is not correctly passes parameters to this function. 🙁
MfG MaGoth, WoG.ru-Community.
does not work in 2.46 ansi either for me, so what do I know
OutFile "$%temp%\temp.exe"
Section
System::Call 'msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "c:\1.mp3") i .r0'
SendMessage $0 0x0490 0 0 $1
IntCmp $1 0 nosup
SendMessage $0 0x0465 0 "STR:play"
Sleep 1000 /* match to sound length otherwise the sound immediately stops playing? */
nosup:
SectionEnd Edit: the 'sleep' only applies to Sections, presumably.. stick it in .onInit or .onGUIinit and it'll work fine (but that little window will be somewhere back in z-order)Test example:Originally Posted by Anders View Postdoes not work in 2.46 ansi either for me, so what do I know
OutFile "test.exe"
SetCompressor /solid lzma
!include "MUI2.nsh"
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Name "Test"
ShowInstDetails nevershow
ShowUnInstDetails nevershow
Var hmci
!define APP_NAME "mci.sound"
!define SND_NAME "1.mp3"
Function .onInit
SetOutPath $PLUGINSDIR
File "${SND_NAME}"
System::Call 'msvfw32.dll::MCIWndCreate(i 0, i 0,i 0, t "$TEMP\${SND_NAME}") i .r0'
StrCpy $hmci $0
SendMessage $hmci 0x0490 0 0 $0
IntCmp $0 0 nosup
ShowWindow $hmci SW_HIDE
SendMessage $hmci 0x0465 0 "STR:play"
nosup:
FunctionEnd
Section "Dummy Section" SecDummy
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
Sleep 1000
SendMessage $hmci ${WM_CLOSE} 0 0
SectionEnd For tests:1. Locate the file - 1.mp3 in the same folder as the script *.nsi.
PS. Everything works fine in ANSI, but it does not work in UNICODE. 😢
MfG MaGoth, WoG.ru-Community.