Skip to content
⌘ NSIS Forum Archive

InstallLib - Pass Flags

7 posts

Fenrirthviti#

InstallLib - Pass Flags

Hello! After several hours of searching, googling, experimenting, etc. I have come to here as a last resort. I'm building an installer that registers a .dll file, but this .dll has a flag that can be passed to change the end result when it is registered. I cannot find any way to pass this flag using InstallLib. It appears to be possible using Exec, but all the documentation and all the guides/wiki/forum posts/stackoverflow/etc. etc. all say that we should not be using Exec anymore, and InstallLib is "more versatile and has more flexibility". I am not finding this to be the case, as I don't seem to have control over the flags being sent.

As an example of what I need to be able to do:

regsvr32 /n /i:"2" "c:\temp\my.dll"
Is there a way to do this using InstallLib, or should I just use Exec instead?
Anders#
It does look like that is not supported.

Use regsvr32 or System::Call.

System::Call '"$InstDir\mylib.dll":😁llInstall(i 1, w "2")i.r0 ?u' ; result in $0
System::Call only works if the .dll is the same bitness as the installer.
Fenrirthviti#
Thanks for the quick response. I have a 32 and 64bit dll that need to be registered, so looks like I'm using regsvr32 with exec.

Thanks again!
sandeep_111#
64 bit dll calling in NSIS script using system call

Hello, I am using following command to call 64 bit dll and read the parameters from that.
I am able to call 32 bit dll successfully but unable to call 64-bit dll .

System::Call '"C:\Program Files\Temp\Utilities.dll":😁etectRunningProcess(t) h("SeqEdit.exe" r6) .r7'
sandeep_111#
Thanks for quick reply.
That means it won't possible with NSIS v3.05 . is there exe available to support 64 bit dll from NSIS?