Does MSCOMCTL.OCX has any dependency? Wouldn't this link Visual Basic 6.0 SP5: Run-Time Redistribution Pack install whatever file that might be missing in the user's machine
Printable View
Does MSCOMCTL.OCX has any dependency? Wouldn't this link Visual Basic 6.0 SP5: Run-Time Redistribution Pack install whatever file that might be missing in the user's machine
You have to register the OCX with regsvr32.exe before it will work. I don't know if you'd call that a dependancy. The syntax for regsvr32.exe (comes with windoze) is:
regsvr32 c:\windows\system\richtx32.ocx
You can put a /s switch on there to make it run silently, good for making an installer if you don't like the packing and deployment wizard (I don't)
Thanks, but... I already knew that. No, I mean if there is any other file (DLL, or whatsoever) that needs to be installed in the user's machine (as well) to be able to use those controls.
BTW, I don't like it either... I use Inno SetupQuote:
Originally posted by mattkinser
You can put a /s switch on there to make it run silently, good for making an installer if you don't like the packing and deployment wizard (I don't)
I'll have to look into that innosetup thing. Looks pretty cool. I use my own installer right now. I have the shell for it all there and you just have hardcode what files need to go where and it will put them there and register them if it needs to and all that jazz. I wish I could get into the .vbp somehow and have it grab all the ocx's, dll's, etc. names and paths, i'll have to look into that too. Anyways. I'm not 100% sure, but you shouldn't need anything else besides the 1 ocx. Unless you're counting the vbrun DLL(s).
I've never dare to write my own installer. And I guess you're missing a lot of things you should take into account. What if the files already exists? What if they exists and are newer than what you are trying to install? What if the file has no version info but the date of the existing file is newer than yours? What if the file is being used and cannot be copied? What if you need to replace a file (because yours is newer) but the file is being used (you should re-boot the system and get the file copied (by your setup) before any process try to use it.Quote:
Originally posted by mattkinser
I'll have to look into that innosetup thing. Looks pretty cool. I use my own installer right now. I have the shell for it all there and you just have hardcode what files need to go where and it will put them there and register them if it needs to and all that jazz. I wish I could get into the .vbp somehow and have it grab all the ocx's, dll's, etc. names and paths, i'll have to look into that too. Anyways. I'm not 100% sure, but you shouldn't need anything else besides the 1 ocx. Unless you're counting the vbrun DLL(s).
To sum up.... creating an installer is much more difficult than just copy the files where they should be and register them. Take that into account.
No... I don't mean neither the virtual machine, nor any other runtime file.
I might have misunderstood your question but,
Mscomctl.ocx
Mscomctl.oca
Mscomctl.dep
Mscomctl.srg - I have no idea what that one is...
When I said you have to hardcode it in, i meant that i have a template, and you hard code the paths into your functions, there is a bit more too it than just coping a bunch of files. It has basic functionality . It will throw an error at you if its already in use, or already exists (this would need a reboot, and you just add your installer into the runonce folder in the registry, have it check the logfile and see what still needs to be copied, very simple). Though it doesn't check the file versions, thats somthing I overlooked. That wouldn't be too hard to implement though, I know you can get at that stuff fairly easily. Thanks for pointing that out though. Luckily it hasn't caused any problems yet. I'll have to get on that.
To find out what the dependancies of a file are, just open it up in dependancy walker.
MSComCtl.ocx does have a dependency, but it is installed with Windows. The ocx is just an easy way to use the dialogs in VB programs. You could make a reference to the dll yourself and write your own code, but it's too much work. That is why there is the mscomctl.ocx file.
I never understood that program.Quote:
Originally posted by Megatron
To find out what the dependancies of a file are, just open it up in dependancy walker.
What do you think this might be?Quote:
Originally posted by MidgetsBro
MSComCtl.ocx does have a dependency, but it is installed with Windows. The ocx is just an easy way to use the dialogs in VB programs. You could make a reference to the dll yourself and write your own code, but it's too much work. That is why there is the mscomctl.ocx file.
Quote:
Run-time error 339
Component "MSCOMCTL.OCX" or one of its dependecies not correctly registered: a file is missing or invalid.
anyone?
You probably already tried this but..... I'd try:
regsvr32 /u mscomctl.ocx
to unregister it, then reboot, and then register it the normal way. Make sure its in the right directory. Make sure you don't have more than one copy of it somewhere else registered. Make sure that if you do, you unregister it before you delete it. Also, I did a search for mscomctl and it found mscomctl.dep and i dragged it over to notepad and it says somthing about comcat.dll, so you might want to make sure that is there, and registered and where it needs to be (c:\windows\system32\).
Does that mean that the user needs the comcat.dll in their machine?Quote:
Originally posted by mattkinser
You probably already tried this but..... I'd try:
regsvr32 /u mscomctl.ocx
to unregister it, then reboot, and then register it the normal way. Make sure its in the right directory. Make sure you don't have more than one copy of it somewhere else registered. Make sure that if you do, you unregister it before you delete it. Also, I did a search for mscomctl and it found mscomctl.dep and i dragged it over to notepad and it says somthing about comcat.dll, so you might want to make sure that is there, and registered and where it needs to be (c:\windows\system32\).
I think it does, but I also think that ComCat.dll gets installed with windows automatically. It is on my computer here that doesn't have visual studio or VB. This is Windows 2000 Pro.Quote:
Originally posted by Mc Brain
Does that mean that the user needs the comcat.dll in their machine?
Win2K installs even the msvbvm60.dll and msvbvm50.dll.... I cannot say the same about Win ME. And the person who's having this problem is using Win ME.
It's actually quite useful. You can open DLLs up and find out what their exports are too.Quote:
Originally posted by Mc Brain
I never understood that program.
But it shows me hundreds of files.... how do interpret them?
I get this from VB's "Depends":Quote:
Originally posted by Megatron
It's actually quite useful. You can open DLLs up and find out what their exports are too.
ADVAPI32.DLL
COMCTL32.DLL
COMDLG32.DLL
GDI32.DLL
KERNEL32.DLL
MSCOMCTL.OCX
MSVCRT.DLL
NTDLL.DLL
OLE32.DLL
OLEAUT32.DLL
RPCRT4.DLL
SHELL32.DLL
SHLWAPI.DLL
USER32.DLL
I know some of those must never be installed in the users machine, but since I'm never sure... I don't know what needs to be installed and what musn't.
Aside from the standard windows DLLs, I only get 4-5 other files.
The correct files are listed at the bottom of the screen.
I pasted all the files that are listed at the bottom of the screen... but they're 14. Which one should I ship?Quote:
Originally posted by Megatron
Aside from the standard windows DLLs, I only get 4-5 other files.
The correct files are listed at the bottom of the screen.
Can anybody answer my last question?
How are you distributing the file? If you aren't doing it by the internet, then ship them all... otherwise, do you have access to a computer that doesn't have VB or any development tools on it? If so, just try running your program on that and write down all the files that it was missing, then add them to your installer and try again until you have all the files and it's working... kind of a hassle, but I don't know how else to do it other than the dependency walker as megatron mentioned, and I don't know how to use it either.
I'm distributing through Internet... so I don't want to ship components that are not necessary because that would increase the size of the setup file.
I've added whatever file I could think of... yet, it doesn't work. The files I included were:
- stdole2.tlb
- msvbvm60.dll
- oleaut32.dll
- olepro32.dll
- asycfilt.dll
- comcat.dll
He's still getting the "Run-time error '339'; Component 'MSCOMCTL.OCX' or one of its dependencies not correctly registered: a file is missing or invalid." message.
BTW, his "system" (if you can call it system ;) ) is Windows ME.
did you unregister it and re-register it? Why not just use the P&D wizard for him since that should work.
I hate P&D W... it´s being a long time since I don´t use it.
I've created a single project with this ocx only... and this is what I got:
Quote:
[Bootstrap]
SetupTitle=Install
SetupText=Copying Files, please stand by.
CabFile=Project1.CAB
Spawn=Setup1.exe
Uninstal=st6unst.exe
TmpDir=msftqws.pdw
Cabs=1
[Bootstrap Files]
[email protected],$(WinSysPathSysFile),,,7/15/00 12:00:00 AM,101888,6.0.84.50
[email protected],$(WinSysPathSysFile),$(DLLSelfRegister),,5/31/98 12:00:00 AM,22288,4.71.1460.1
[email protected],$(WinSysPathSysFile),$(TLBRegister),,6/3/99 12:00:00 AM,17920,2.40.4275.1
[email protected],$(WinSysPathSysFile),,,3/8/99 12:00:00 AM,147728,2.40.4275.1
[email protected],$(WinSysPathSysFile),$(DLLSelfRegister),,3/8/99 12:00:00 AM,164112,5.0.4275.1
[email protected],$(WinSysPathSysFile),$(DLLSelfRegister),,4/12/00 12:00:00 AM,598288,2.40.4275.1
[email protected],$(WinSysPathSysFile),$(DLLSelfRegister),,8/21/00 12:00:00 AM,1388544,6.0.89.64
[IconGroups]
Group0=Project1
PrivateGroup0=-1
Parent0=$(Programs)
[Project1]
Icon1="Project1.exe"
Title1=Project1
StartIn1=$(AppPath)
[Setup]
Title=Project1
DefaultDir=$(ProgramFiles)\Project1
AppExe=Project1.exe
AppToUninstall=Project1.exe
[Setup1 Files]
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),5/22/00 4:58:10 PM,1066176,6.0.88.62
[email protected],$(AppPath),,,8/7/02 1:32:44 AM,16384,1.0.0.0
I'm completely lost!! Why MSDN sayshttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/vb98/html/vbidxmiscellaneousmessages.aspQuote:
339 Object server 'item' not correctly registered or not found (Error 339)
Does anybody have any idea to fix this?
anyone? there's got to be a solution for this!!
please?
^bump^
Does this happen on everyone's machine or just this persons? Have them try reinstalling IE5.5, or switch to a different OS than ME, not only is it microshaft, its microshafts most half assed one ever. Don't go to windows 2000 sp 3, the EULA for the SP has some bit about them owning your desktop, hehehe.
This only happens on their machines, and apparently they both have Windows ME. I've asked them to try in another system and to tell me which IE thery running, but I had no response on both suggestions.