-
Sep 25th, 2021, 07:02 PM
#1
Thread Starter
Frenzied Member
[RESOLVED] Run-Time error '429': ActiveX component can't create object. VB6 Deployment Package
Okay, so I have this program creating an installation package for my old VB6 application.
I started off using InnoSetup, but in another thread the only comment was 'meh', like don't use it.
Okay, so I created an install package using the VB6 Deployment Package Wizard.
Both installation packages, InnoSetup created and DPW created, end up with same result.
When I try to run the installed program, I get the run-time error '429'.
I did a search within the forum but it isn't the best search system as I get all kinds of things not even close to the RT429 issue.
The big problem is that it does NOT tell me what 'object' it can't create. How does one find out in order to fix?
Is there a log somewhere that would spell this out?
Here is a list of the DLL and OCX files that I found in the original InnoSetup script .iss file associated with my app.
msvbvm60.dll **
oleaut32.dll
olepro32.dll
asycfilt.dll
comcat.dll
mscomct2.ocx *
IGResizer40.ocx *
msfl651d.dll
msflxgrd.ocx *
comctl32.ocx *
comdlg32.ocx *
DirectCOM.dll
sqlite36_engine.dll
dhRichClient3.dll
(msdatgrd.ocx)
(mschrt20.ocx)
** = Listed in References
* = Listed in Components
( ) = Listed in Components but not in my original InnoSetup install script.
DirectCOM.dll, sqlite36_engine.dll, dhRichClient3.dll did not show up in a text search of my code. So I don't know if they are called by something else or what. This is a bit over my head.
Does anyone have an idea as to what I should be doing to fix this? Thanks.
-
Sep 26th, 2021, 01:17 AM
#2
Thread Starter
Frenzied Member
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
Doesn't anyone know why this is happening? I've been at this for hours and am baffled.
The program runs fine when executed from within the VB6 IDE.
But it won't run when installed on any Windows systems.
Run-time error '429':
ActiveX component can't create object
I'm baffled!
-
Sep 26th, 2021, 03:29 AM
#3
Lively Member
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
You must instruct your installer (InnoSetup or other) that all OCX must be installed and registered using the 'Register Ole Server' flag, as well as many DLL libraries (not all, it depends on the type of library).
When distributing programs it is always better to test the installation and execution results in a virtual machine (Oracle VirtualBox, VMWare, ...) in order to check what is missing and why.
-
Sep 26th, 2021, 03:46 AM
#4
Thread Starter
Frenzied Member
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
Originally Posted by LeoFar
You must instruct your installer (InnoSetup or other) that all OCX must be installed and registered using the 'Register Ole Server' flag, as well as many DLL libraries (not all, it depends on the type of library).
When distributing programs it is always better to test the installation and execution results in a virtual machine (Oracle VirtualBox, VMWare, ...) in order to check what is missing and why.
Thanks for commenting.
Whether it is DPW or InnoSetup, the error is the same.
In InnoSetup, I have the flag "regserver" for all the OCX.
I'm testing on a fresh Win 7 install on one laptop and another Win 7 laptop. Both gives the same error.
I know it has to be something with the installation since the 'exe' of the app works fine on my dev machine.
But even when I take a working 'exe' over to another machine that I ran the install on (that has error) hoping it would work, same error.
I've tried manually registering every single OCX and DLL that the dependency list provided. If it can register, it did.
But no dice.
Isn't there a way to find out WHICH OCX is the trouble-maker?
-
Sep 26th, 2021, 03:57 AM
#5
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
Originally Posted by webbiz
Isn't there a way to find out WHICH OCX is the trouble-maker?
Your .vbp project file contains all your dependent components (DLLs and OCXs). Either use IDE to list project references/components or directly inspect your .vbp in Notepad.
Some of your dependent DLLs might be system provided ones (like MSVBVM60.DLL or ADO) which you dont’t have to ship.
Research regfree COM and save yourself installation troubles by making your app XCopy deployable.
-
Sep 26th, 2021, 04:14 AM
#6
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
Originally Posted by webbiz
msvbvm60.dll
oleaut32.dll
olepro32.dll
asycfilt.dll
comcat.dll
These have been a part of Windows for a very long time now, at least WinXP SP3 if not all the way back to Windows 2000. They are not deployable and should never be included except in a package meant to install on old Win9x platforms.
Windows should detect and repair attempts to overwrite the system copies of these libraries.
Originally Posted by webbiz
mscomct2.ocx
msflxgrd.ocx
comctl32.ocx
comdlg32.ocx
:
msdatgrd.ocx
mschrt20.ocx
These are control libraries provided with VB6 and their deployment rules haven't changed. A legacy scripted setup or installer should look for them already installed and not overwrite them unless a newer versions must be installed. Their .DEP files describe to legacy scripted setup packagers where to install them, and the provided Installer merge modules from Microsoft already contain the logic to properly deploy them.
Originally Posted by webbiz
IGResizer40.ocx
msfl651d.dll
DirectCOM.dll
sqlite36_engine.dll
dhRichClient3.dll
These look like 3rd party stuff. All bets are off, see the vendor's documentation.
-
Sep 26th, 2021, 12:13 PM
#7
Thread Starter
Frenzied Member
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
Originally Posted by wqweto
Your .vbp project file contains all your dependent components (DLLs and OCXs). Either use IDE to list project references/components or directly inspect your .vbp in Notepad.
Some of your dependent DLLs might be system provided ones (like MSVBVM60.DLL or ADO) which you dont’t have to ship.
Research regfree COM and save yourself installation troubles by making your app XCopy deployable.
I've loaded up the VBP in Notepad++ and notice at the very top a list:
Type=Exe
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\SysWOW64\stdole2.tlb#OLE Automation
Reference=*\G{C79C91A4-10F5-4F71-A490-3B7915514344}#2.5#0#..\vbRichClient SQLite\vbRichClient5.dll#vbRichClient5
Object={5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0; MSFLXGRD.OCX
Object={86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCT2.OCX
Object={65E121D4-0C60-11D2-A9FC-0000F8754DA1}#2.0#0; MSCHRT20.OCX
Object={1AF1F43C-1DE4-44ED-B0FD-A49A4EAA03A6}#4.0#0; IGResizer40.ocx
Object={6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0; comctl32.ocx
Object={CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0; MSDATGRD.OCX
Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; COMDLG32.OCX
This is followed by Form= forms, modules, and other details about the app. Can you believe I've never opened this in a text editor? Yep, you can believe it. I answered that for you. ;-b
So my question is, would this be ALL THE DEPENDENCIES and nothing more for the app? Or is it possible to have other dependencies that would not appear in this list? For example, is it possible for one of these dependencies to require another but not announce it? Sorry if that is a dumb question, but I'm trying to make sure I get a complete picture of what this app needs.
Meanwhile, I have already pulled up the docs.microsoft.com page on registration-free-com-interop based on your suggestion to look at regfree coms and will try to get my head around it. THANKS for the direction!
-
Sep 26th, 2021, 12:21 PM
#8
Thread Starter
Frenzied Member
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
Originally Posted by dilettante
These have been a part of Windows for a very long time now, at least WinXP SP3 if not all the way back to Windows 2000. They are not deployable and should never be included except in a package meant to install on old Win9x platforms.
Windows should detect and repair attempts to overwrite the system copies of these libraries.
These are control libraries provided with VB6 and their deployment rules haven't changed. A legacy scripted setup or installer should look for them already installed and not overwrite them unless a newer versions must be installed. Their .DEP files describe to legacy scripted setup packagers where to install them, and the provided Installer merge modules from Microsoft already contain the logic to properly deploy them.
These look like 3rd party stuff. All bets are off, see the vendor's documentation.
Oh this is so enlightening! Thank you so much. I sure have missed a lot of happenings over the last 1.5 decades!
So the second list you show from "mscomct2.ocx to mschrt20.ocx" I could leave off the install script as well because my app was written a long time ago and I don't need to install new updated copies? In other words, it is likely that they are newer already on the installers computer especially if using a Win OS newer than XP?
So if I understand you correctly, the ONLY ones I really need to be concerned with are the 3rd-party stuff?
That narrows it down if so.
Cheers!
-
Sep 26th, 2021, 02:00 PM
#9
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
No, the second list are things you must deploy.
Before you do however your script is supposed to see if the user's machine already has each one installed and only replace them if your program needs newer versions provided by your setup package.
-
Sep 26th, 2021, 02:45 PM
#10
Thread Starter
Frenzied Member
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
Originally Posted by dilettante
No, the second list are things you must deploy.
Before you do however your script is supposed to see if the user's machine already has each one installed and only replace them if your program needs newer versions provided by your setup package.
Oh, okay. Thanks.
-
Sep 26th, 2021, 03:39 PM
#11
Thread Starter
Frenzied Member
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
Well, I stripped out DLL's not required (as far as I can tell), and DLL's that are standard in Windows OS's.
Other than my executable and help file, this is all that I've included in my installation file.
Source: "d:\programming\deploy files\stdole2.tlb"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regtypelib
; end VB system files
Source: "d:\programming\deploy files\mscomct2.ocx"; DestDir: "{sys}"; Flags: restartreplace sharedfile regserver
Source: "d:\programming\deploy files\MSFLXGRD.ocx"; DestDir: "{sys}"; Flags: restartreplace sharedfile regserver
Source: "d:\programming\deploy files\comctl32.ocx"; DestDir: "{sys}"; Flags: restartreplace sharedfile regserver
Source: "d:\programming\deploy files\comdlg32.ocx"; DestDir: "{sys}"; Flags: restartreplace sharedfile regserver
Source: "D:\programming\vbRichClient SQLite\vbRichClient5.dll"; DestDir: "{app}";
And on a VirtualBox Windows 7 clean install I still get that dreaded Run-time 429.
I just don't know where to go from here. It runs just fine on my Dev machine (Windows 10).
???
-
Sep 26th, 2021, 03:58 PM
#12
Thread Starter
Frenzied Member
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
Eureka!!!!
I found what is causing the Run-Time 429 error. BUT I HAVEN'T YET FIGURED OUT HOW TO FIX.
The REASON it appears that it worked great on my DEV machine (Windows 10) but not in Windows 7 machines (including VirtualBox) has to do with the OS itself!
But why???
Here's what I found so far.
1. When I considered that I was running the VB6 IDE on my Windows 10 machine, and it ran and compiled and installed just fine on the Windows 10 machine but would get the '429' error on two Win 7 machines and a VirtualBox Win7 machine on my Win10 machine, it dawned on me to see what would happen if I moved my DEV files onto the VirtualBox Win7 machine and tried to compile, run, install it.
And sure enough, the VB6 IDE gave the error on a class that is defined in vbRichClient5.dll. See pic.
Attachment 182402
So the PROBLEM has something to do with vbRichClient5.dll and Windows 7 (I can't say for any previous versions).
Now the question is, why?
It shows up just fine in the REFERENCES list with a checkmark.
Anyone got a clue now that I've gotten this far?
-
Sep 26th, 2021, 04:06 PM
#13
Thread Starter
Frenzied Member
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
OMG!!! Yeah, I'm getting excited here.
I figured there has to be some kind of registration issue.
So what I did was move the whole directory (vbRichClient SQLite) to my VirtualBox Win7 DEV and see what would happen if I ran one of those "RegisterRC5inPlace.vbs" and "RegisterVBWidgetsInPlace.vbs" files I found in there.
I ran the first one, "RC5", and it came back that it registered vbRichClient5! So I ran the app again in the VB6 IDE and it worked without error!!!
So that's the WHY.
Now I need to figure out how to get my INSTALL package to do this automatically. I don't want to have to say to users that they must manually register this or that. Just run the install.
The search continues...
-
Sep 26th, 2021, 04:14 PM
#14
Thread Starter
Frenzied Member
Re: Run-Time error '429': ActiveX component can't create object. VB6 Deployment Pack
SOLVED!!!
[Files]
Source: vb_cairo_sqlite.dll; DestDir: {app}\Bin
Source: vbRichClient5.dll; DestDir: {app}\Bin; Flags: regserver
And it installs just fine now in Windows 7.
Case closed.
-
Sep 26th, 2021, 05:27 PM
#15
Re: [RESOLVED] Run-Time error '429': ActiveX component can't create object. VB6 Depl
I don't know very much about the No-no, but it looks like you have scripted things to try to re-register a new copy within the Bin subdirectory of your app-target directory every time.
And you do this with no regard to versioning or whether there is a system-level copy already installed and in use by other applications.
I'm not sure how anything has been "resolved" here. At best you seem to have achieved "works one time, damn the torpedoes and any other applications the user might have."
No-no Setup is very dangerous in uneducated incautious hands.
-
Sep 26th, 2021, 07:44 PM
#16
Thread Starter
Frenzied Member
Re: [RESOLVED] Run-Time error '429': ActiveX component can't create object. VB6 Depl
Originally Posted by dilettante
I don't know very much about the No-no, but it looks like you have scripted things to try to re-register a new copy within the Bin subdirectory of your app-target directory every time.
And you do this with no regard to versioning or whether there is a system-level copy already installed and in use by other applications.
I'm not sure how anything has been "resolved" here. At best you seem to have achieved "works one time, damn the torpedoes and any other applications the user might have."
No-no Setup is very dangerous in uneducated incautious hands.
Perhaps. But I only have a handful of users and they really want this to install.
As for my 'uneducated incautious hands', I reached out for direction in the last couple of days and was not given any 'cautions' to work with. Didn't have much choice.
I'm still really pleased that I was able to get down and dirty and solve a mystery that left me with little sleep and great agitation to solve. I'll not let a 'negative' get in the way of my celebration this evening.
:-)
-
Sep 27th, 2021, 02:33 AM
#17
Lively Member
Re: [RESOLVED] Run-Time error '429': ActiveX component can't create object. VB6 Depl
Originally Posted by webbiz
I'll not let a 'negative' get in the way of my celebration this evening.
:-)
I Agree.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|