windsor_gabe
13th June 2007 19:44 UTC
suggestion for exdll.h
I'm creating my first plugin, and I'm having a build error in the code included from exdll.h.
The problem is that the functions use lstrcpy/lstrcpyn which are actually macros that get mapped to either single-byte or wide-char versions (lstrcpyA/lstrcpyW) depending on the UNICODE macro. But the NSIS stack expects single-byte characters (right?) so the exdll.h functions like popstring() and pushstring() should be using lstrcpyA() etc. instead of depending on the UNICODE macro.
JMHO
kichik
13th June 2007 19:49 UTC
Done to make it easier for Unicode plug-ins. Though I must say I can't see a situation where you'd want to build a Unicode plug-in.
windsor_gabe
13th June 2007 19:56 UTC
Mostly just the fact that VC++ 2005 now defaults to UNICODE build for any new projects, so I ran into this right away. Also I'm porting some code from an "MSI custom action" DLL to an NSIS plugin and the other developer had UNICODE turned on so it's easier just to keep it than to go through and fix all the TCHAR dependent code.
When you say "done" does that mean this will be changed in the next version?
Sorry for the newbie question but...I'm a newbie.
kichik
13th June 2007 20:03 UTC
Yes, done means the next version. The change is done in CVS.
Joel
13th June 2007 20:33 UTC
Originally posted by windsor_gabe
Mostly just the fact that VC++ 2005 now defaults to UNICODE build for any new projects, so I ran into this right away. Also I'm porting some code from an "MSI custom action" DLL to an NSIS plugin and the other developer had UNICODE turned on so it's easier just to keep it than to go through and fix all the TCHAR dependent code.
When you say "done" does that mean this will be changed in the next version?
Sorry for the newbie question but...I'm a newbie.
Since I hate Unicode strings I prefer disable them in projecto properties :)