Skip to content
⌘ NSIS Forum Archive

RegDll doesn't work fine

5 posts

fabiochelly#

RegDll doesn't work fine

Hi,

I have a problem with RegDLL

It doesn't work if I call it juste after copying the dll I want to register. This code doesn't work (the dll is not registered):
SetOutPath "$INSTDIR"
File "test.dll"
RegDLL "$INSTDIR\test.dll"
In fact, I have to register my dlls after copying all files.
I suppose that the command RegDLL is executed before the file has been compeletely copied.

Is it possible to correct this behaviour? In fact, is it possible to create a synchronous copy of the files? Like this, the RegDLL would be launched only if the file has been compeletely copied.
kichik#
That DLL probably depends on some other DLLs that are copied after the RegDLL instruction. Make sure you extract all its dependencies before you try to register it.
LazyBear#
In fact, I have to register my dlls after copying all files
Ok, I'll try to explain how I would do this:

Copy all of your files(dlls AND other stuff) where you want them to be. After all sections which copy files, you open a section which has just to register the dlls

like this:


Section "copy dlls"
SetOutPath "$INSTDIR"
File "test.dll"
File "other.dll"
File "your.dll"
SectionEnd

Section "register dlls"
RegDLL "$INSTDIR\test.dll"
RegDLL "$INSTDIR\other.dll"
RegDLL "$INSTDIR\your.dll"
SectionEnd


Well I think this should work

so long -L-B-
fabiochelly#
2kichik:
You're right!
I tried to register the xerces dll without having copy the 2 other dll needed by the first one!