newLISP windows installer PATH

Started by HPW, July 31, 2011, 01:58:10 AM

Previous topic - Next topic

HPW

Hello,



I had installed newLISP on a fresh W7 PC.

I started installation from a user-account and after asking the admin password it installs.

So far it runs fine.



But using newLISP DLL from other envriments shows a problem.



The newLISP installer installs newLISP into the wanted path.

Besides the NEWLISPDIR variable it set the newLISP-path into the PATH-variable.



But it uses the user-PATH variable instead of the systemwide PATH-variable.



So now my LoadLibrary from the user-account fails, because the path-entry is only in the admin's Path-variable and fails.



So the installer of newLISP should put the path-info into the  systemwide PATH-variable.



Regards



Hans-Peter
Hans-Peter

Lutz

#1
Couple of questions, because I am not that familiar with Windows 7:



- Is the distinction between user and system-wide PATH environment variable new in Windows 7, or did that distinction already exist in Windows XP?



- Is specifying the full path for the LoadLibary() call a workaround, or is it really a permission problem and not a PATH problem?

HPW

#2
Hello,


Quote
- Is the distinction between user and system-wide PATH environment variable new in Windows 7, or did that distinction already exist in Windows XP?


No, as as I know it is the same in windows xp. (I will check it on my older XP system)

When you look into system 'propertys/ enviroment variables' the dialog shows 2 areas of variables.

On top the dialog shows the user settings and the window below show the system settings.


Quote
- Is specifying the full path for the LoadLibary() call a workaround, or is it really a permission problem and not a PATH problem?


Of course is giving the full path always a workaround.

And it was a path problem, because after setting the path into the system-wide path it gets working.



Regards



Hans-Peter
Hans-Peter

HPW

#3
Hello,



Checked it on my XP-Box:



The top frame is titled with (translated from german): Uservariable for username



The frame below is titled: Systemvariables



On my XP newLISP is also only in the user-path.

But it was never a problem since I had no different user/admin account.

And in my hpwNewLISP plugin I always used full path.

But now with vista/win7 and the UAC things changed.



In the system path I can find pathes from TCL/Ruby/Delphi etc.



BTW: NEWLISPDIR is defined on all systems as a system-wide variable.



Regards



Hans-Peter
Hans-Peter

Lutz

#4
Thanks for researching this Hans-Peter.



Future versions will install newlisp.dll in C:WINDOWSsystem32 or whatever the system32 directory is called on a specific Windows platform. The NSIS installer used for newLISP uses an internal variable $SYSDIR for this. This way newlisp.dll is always in the usual path for DLLs.