- NSIS Discussion
- VB again and again
Archive: VB again and again
KhaZt
5th March 2002 22:24 UTC
VB again and again
Hello
Well i've been searching for all posts concerning how to instal vb dlls but none were understandable for me :/
I've made a visual basic application,and i know that if someone wants to run my app properly he must first have these files listed belove installed
-
system files needed:
asycfilt.dll
axdist.exe
comcat.dll
ctl3d32.dll
dx7vb.dll
mscmcfr.dll
mscomctl.ocx
msinet.ocx
msvbvm50.dll
mswinsck.ocx
oleaut32.dll
olepro32.dll
rchtxfr.dll
riched32.dll
richtx32.ocx
stdole2.tlb
swflash.ocx
sysinfo.ocx
vb5fr.dll
winskfr.dll
-
As im completely a newbie concerning dlls/ocx etc.. registration i don't know what to write in my .nsi file =/
I know there should be a few probs:
-how do i install "normal" dlls?
-how do i instal "shared" dlls (i dont even know what does that mean :/)
-how do i instal ocx ? and is there "shared" ocx too?
-how do instal stdole2.tlb?
-what do i have to do with the axdist.exe ?
-Do i have to use the WriteRegDWORD command? when?
I ve been searching for about 1 week and still got all these questions...if someone could be nice enough to help me it would be great...thxs a lot!
SmartyMan
5th March 2002 23:17 UTC
Re: VB again and again
Originally posted by KhaZt
As im completely a newbie concerning dlls/ocx etc.. registration i don't know what to write in my .nsi file =/
Use the RegDLL command for all OCX and for self registering .dll files (use dependency walker to find out which of your .dll have a method named "DllRegisterServer").
Ive not prooved this, but I think this will work for all of the listed files.
KhaZt
6th March 2002 19:34 UTC
Do you mean there's 2 sort of dll,the selfregistering ones and the shared ones?
I think i can know which one are shared or selfregistered via the setup.lst generated by the vb setup tool;look:
File1=1,,VB5FR.dl_,VB5FR.dll,$(WinSysPath),,$(Shared),3/14/1998 15:47:24,96256,5.0.43.19,"","",""
File2=1,,MSVBVM50.dl_,MSVBVM50.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,5/1/1998
but what surprise me is that for all .ocx,it says $(Shared) and $(DLLSelfRegister) both:
File1=1,,MSWINSCK.OC_,MSWINSCK.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),2/4/2002 17:15:46,109248,6.0.88.4,"","",""
Anyone got an idea about these differences?
I find "WriteRegDWORD HKLM Software\Microsoft\CurrentVersion\SharedDLLs ..." in a post talking about dlls...do you know if i need that WriteRegDWORD for the shared dlls/ocx ?
SmartyMan
6th March 2002 23:59 UTC
Originally posted by KhaZt
Do you mean there's 2 sort of dll,the selfregistering ones and the shared ones?
No, there are much more types :)
I think i can know which one are shared or selfregistered via the setup.lst generated by the vb setup tool;look:
Then you already know what to do :)
but what surprise me is that for all .ocx,it says $(Shared) and $(DLLSelfRegister) both:
What is your problem with this?
Just install these files to system/system32 and implement a call to RegDLL.
I find "WriteRegDWORD HKLM Software\Microsoft\CurrentVersion\SharedDLLs ..." in a post talking about dlls...do you know if i need that WriteRegDWORD for the shared dlls/ocx ?
If you want to install shared .dll as thought by MS, then you have to init a counter, but you can install them also in your apps dir and leave the registry alone.
DuaneJeffers
7th March 2002 03:04 UTC
How about this, Make it a system requirement to have the latest vb runtimes. That way, you won't have to worry about making sure the person has the proper dlls and you can have a lighter app that your downloaders will enjoy.
-Duane
KhaZt
7th March 2002 22:47 UTC
Thxs a lot SmartyMan gonna try this :)
DuaneJeffers the pb with vb runtimes is that it does not include any .ocx :/
ViperInc
8th March 2002 09:24 UTC
vb runtimes
um..
silly quiestion,
but why not just incude teh 1meg vb runtimes with the program, and at the start just do a search to see if vb6.dll (or wateva) is under system, and if not run the .exe file.. thats what i do... but it does take up so much room....
KhaZt
8th March 2002 16:32 UTC
Msvbm50.exe contains Msvbvm50.dll, Oleaut32.dll, Olepro32.dll, Stdole2.tlb, Asycfilt.dll and Comcat.dll that's all...and i need many other files.
Btw i'm not sure of how to run msvbm50.exe silently:exec "Msvbvm50.exe /q" doesn't work...anyone know?
ViperInc
8th March 2002 23:04 UTC
umm
just get all the vb 6 dlls work the same...
the file is called vbruntimes.exe and is about 1mb
then from the nsis just extract the file to a temp directory, run it there, then delete it.. simple..
i can show you how i did it if u need help
Viper
KhaZt
9th March 2002 13:02 UTC
In fact the /q switch works fine for vbrun60.exe:it installs the files silently.But it doesn't work with msvbm50.exe since its not a self-extractor file (like vbrun60.exe) :/ So if you know a version of vb 5 runtimes which support /q switch that would help me a lot as vbrun60 won't 100% work for my vb5 app :|
ViperInc
10th March 2002 06:46 UTC
really..
well ther eu go, bloody micrsoft making new versions incompadible...
ill take a look and see if i can find a self installin file....
but why not make the installation visible, and just instruct the uset that he need the vb5 dlls
KhaZt
10th March 2002 21:20 UTC
rah
rah i couldnt find any self-extracting versions so i started trying a few other parameters and it appears that /s switch for msvbvm50.exe works! i still don't understand why it's /q for 6.0runtimes and /s for 5.0 ones..
Anyway thxs to all who helped me...i finally did it! :P
meaningoflights
12th January 2008 23:22 UTC
good link to finish off thread:
http://support.microsoft.com/kb/192461