Archive: Registering DLLs


Registering DLLs
I'm having problems registering DLLs. I use RegDLL "Path\dllname.dll"
and I get "Could not find symbol: DllRegisterServer". Is this a bug on NSIS software or not. Thanks.


This error means NSIS can't find a function called DllRegisterServer in the DLL. This function is the function in the DLL that handles its registering process. Are you sure your DLL has this function?

To make sure it does use Dependency Walker 2.1.


Not all DLL's require registration.


Ok, I've found a similar problem.
I found out that on Windows 98 (perhaps 95 too), the utility used to registers DLLs (regsvr32) is NOT located under %SYSTEMROOT%\system32 but under %SYSTEMROOT%\system
If the system is 'vanilla' (at least on a system like mine), the default search path doesn't include %SYSTEMROOT%\system.
As consequence, when NSI executes the RegDll command, it fails because it cannot find that program.

Workaround? I don't know an elegant solution... my problems was "solved" because my application was targeting only Windows NT, 2000 and XP machines... and I didn't have any problems with those.

Hope this help.
Fabrizio


Just use NSIS's RegDll function... It does the same thing as regsvr32.exe.