Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

runtime error 713 application-defined or object-defined error

Status
Not open for further replies.

Crazyf

Programmer
Jun 15, 2007
29
GR
Hello,
I have created a vb6 application and the exe runs properly if i have installed the vb6 on my computer. I created a set up file with inno setup 5 and still runs fine on my computer.
My problem is that if i unistall vb6, when i run the application exe file, when i try to display a data report or try to print the data report through a Print command button on a form of my application i am getting this error.
Also, i tried to follow instructions with no effect.
The way i tried it, was from inno setup script wizard, where i included the bellow files:
c:\windows\system32\Msdbrptr.dll
C:\program files\common files\designers\Msderun.dll
c:\windows\system32\Msstdfmt.dll
c:\windows\system32\Msdatrep.ocx
c:\windows\system32\Msbind.dll
Still having this problem, although i tried to include c:\windos\system32\Msdbrpt.dll too.
Another thought in my mind is that if i correct this problem on my computer, what about if i want to install my application on other computers, will i have the same problem too, if other computers don't have vb6? Any help will be much appreciated.

Thank you much
in advanced.
 
What happens when you install it on another machine?

Testing on your dev machine by uninstalling VB6 is far from an ideal solution.

You need a "lab rat" machine with minimum specs (or below) for your target OS and install and test on that.

Chris.

Indifference will be the downfall of mankind, but who cares?
Woo Hoo! the cobblers kids get new shoes.
People Counting Systems

So long, and thanks for all the fish.
 
My problem is that i want my program to run in every computer i install it and not deal with machines.
Although if i install it on another machine i still have the same problem i refered above.
 
My problem is that i want my program to run in every computer i install it and not deal with machines.
In an ideal world this would be a wonderful scenario. Unfortunately it doesn't work like this and you should verify the install and your application on something other than your dev machine.

maybe the installer isn't registering the components.

Have you tested using regsvr32 to register the components manually?

Have you tried using a different installer?



Chris.

Indifference will be the downfall of mankind, but who cares?
Woo Hoo! the cobblers kids get new shoes.
People Counting Systems

So long, and thanks for all the fish.
 
Have you tested using regsvr32 to register the components manually?" How can i do this?
 
Also, my operating system is Windows Xp and Microsoft Visual Studio Installer 1.1 is up to Windows 2000.
 
Microsoft Visual Studio Installer 1.1 is up to Windows 2000
Windows XP hadn't been released when that was written.
Be assured that it works fine on XP (both from the IDE and as a install target OS)


Start -> Run regsvr32 path\component_filename.ext

Use quotes around the path & filename if it contains spaces ( such as c:\Program Files\folder\ )



Chris.

Indifference will be the downfall of mankind, but who cares?
Woo Hoo! the cobblers kids get new shoes.
People Counting Systems

So long, and thanks for all the fish.
 
Well, i tried this. When i have installed the vb6 on my computer Start -> Run regsvr32 path\component_filename.ext works successfully. But when i have not installed the vb6 on my pc i am getting the message "The loading dll was unsuccessful, Its impossible to locate the specified unit." because maybe these are components and libs of vb6.
When i install the Prodelectron setup without having vb6 on my computer, a folder created on c:\program files\Prodelectron. The prodelectron folder includes the ocx and dll files. Evidently, it is considered for the program to find these files in the path c:\windows\system32. So how can i adapt the prodelectron setup file through inno setup 5, to sent the ocx and dll files to c:\windows\system32.
 
But when i have not installed the vb6 on my pc i am getting the message "The loading dll was unsuccessful, Its impossible to locate the specified unit." because maybe these are components and libs of vb6.
Or you are specifying the wrong path.

So how can i adapt the prodelectron setup file through inno setup 5, to sent the ocx and dll files to c:\windows\system32.
No idea, I don't use this particular install creator.
But it does sound like it isn't registering the files in the appropriate paths.




Chris.

Indifference will be the downfall of mankind, but who cares?
Woo Hoo! the cobblers kids get new shoes.
People Counting Systems

So long, and thanks for all the fish.
 
The problem is almost certainly because you are not installing all the files your app is dependent upon; for instance the following are required by all vb6 apps and you have not listed them;

COMCAT.DLL,STDOLE2.TLB, ASYCFILT.DLL, OLEPRO32.DLL, OLEAUT32.DLL and msvbvm60.dll

I expect inno setup will automatically list dependent files for you but I am not familiar with it. I therefore recommend using the VB6 Package and deployment wizard to create a setup package; that will include a file called SETUP.LST which will list the dependencies, you should then be able to transfer those file names into your inno setup.
 
You should understand that every VB EXE has dependencies on libraries that it uses (DLLs and OCXs). Which DLLs and OCXs it requires depends on what you used in the program (i.e. References).

When you distribute your EXE to other computers, you need to create a setup package that includes all the DLLs and OCXs the program needs, as you have no way of knowing if the machine already has those files.

When you uninstalled VB6 from your computer, you removed some of those DLLs and/or OCXs.

 
HughLerwill :
The files you mentioned, exist on my computer, without having installed vb6.

JoeAtWork :
If someone on his computer hasnot vb6 and want to install my programm must he needs all these OCXs and DLLs used by references?

Does anyone know how to change the destination of DLLs and OCXs through inno setup 5?

Thanks everyone
 
>exist on my computer

They (probably will but) may not exist on another computer, it is normal for all VB6 App install routines to include them.
 


If someone on his computer hasnot vb6 and want to install my programm must he needs all these OCXs and DLLs used by references
Yes, it is the purpose of the installer, to also install these files and set references to them on the target machine.

and here we are back at requiring a machine other than your dev machine.

One question that hasn't been asked is;

Are you using late or early binding?

It may well be that Inno Setup cannot determine the dependencies and therefore does not include the files.



Chris.

Indifference will be the downfall of mankind, but who cares?
Woo Hoo! the cobblers kids get new shoes.
People Counting Systems

So long, and thanks for all the fish.
 
... create a setup using the P&D Wizard (taking note of your earlier ref to kb/248055); test the install routine created; when that works checkout the SETUP.LST file; transfer deets to inno.
 
Hi Crazy,

You've been getting some good advice here. It's important to understand that the reason you're having trouble is that you're attempting in your code to reference a code library that is not registered on the machine. (This is called a "dependency problem" or "DLL Hell.") From there, you can track down the problem. A few things to keep in mind:

1. The existence of a file on the machine does not guarantee that it's registered.
2. Manually registering and/or unregistering files is a means to troubleshoot dependency problems, not a means to install a program.
3. Don't keep trying different install programs until you find one that works. Install programs vary a great deal in quality, and you don't want to get lucky with an obscure one and have trouble with it later and find that nobody knows anything about it. I would stick with either the VS installer or INNO setup, and get one of those working. I would NOT use the P&D wizard, except as a possible troubleshooting tool.
4. If you find out what line is causing the error, it will go a long way to finding out what file isn't being included in your setup.
5. It is indeed best to have a "lab rat" computer to test your setup program, although that isn't always feasible.

Good Luck! We've all been there.

Bob
 
First of all, i cant use the p&d because the help file of my application is chm not hlp and p&d includes only hlp files for help.

Bob: How do we know that a file exists on the machine is or not registered? Is there any affect when installing a program? For example vb6. When i install vb6 on my pc, it certainly installs DLLs and other files for the program.
When i uninstall vb6 these files removed from computer.
Is it possible these files to be registered when i istall vb6 for example? If yes what's going on about registered installed files when i install vb6?

In the real time, i have just one computer, mine, that i created an application and runs properly with installed vb6 on my pc, but having problem i refered firstly with unistalled vb6.
I just want know if my program can works on any other computer, either we talk about a personal computer either about a network of a company.

I just need help. I hope these helps.

Thank you very much
for your patience.


 
I included the below files through inno setup wizard 5

filename location

asycfilt.dll C:\Windows\System32
COMCAT.DLL C:\Windows\System32
COMDLG32.OCX C:\Windows\System32
hhctrl.ocx C:\Windows\System32
itircl.dll C:\Windows\System32
itss.dll C:\Windows\System32
msado20.tlb C:\Program Files\Common Files\system\ado
MSADODC.OCX C:\Windows\System32
msadomd.dll C:\Program Files\Common Files\system\ado
MSBIND.DLL C:\Windows\System32
MSCHRT20.OCX C:\Windows\System32
MSCOMCT2.OCX C:\Windows\System32
MSCOMCTL.OCX C:\Windows\System32
MSDATGRD.OCX C:\Windows\System32
MSDBRPTR.DLL C:\Windows\System32
MSDERUN.DLL C:\Program Files\Common Files\designers
MSHFLXGD.OCX C:\Windows\System32
mshtml.tlb C:\Windows\System32
MSSTDFMT.DLL C:\Windows\System32
msvbvm60.dll C:\Windows\System32
oleaut32.dll C:\Windows\System32
olepro32.dll C:\Windows\System32
stdole2.tlb C:\Windows\System32
VB6STKIT.DLL C:\Windows\System32
MSDATREP.OCX C:\Windows\System32

and set the destination folder of each one the same there were located when the vb6 is installed on my pc as i mention here. It works fine as always, when i have vb6 on my pc. With uninstalled vb6 i am getting :
runtime error 372
Failed to load Control 'DataReport' from C:\windows\system32\msdbrptr.dll. Your version of C:\windows\system32\msdbrptr.dll may be outdated. Make sure that you are using the version of the control that was provided with your application.
when i am trying to open a data report.
Also if i am trying to do something else like to display records, i am getting runtime error713: Class not registered. Looking for object with CLSID:{59245250-7A2F-11D0-9482-00A0C91110ED}
Any help will be much appreciated.

Thanks in advanced
 
You can check for sure if a file is registered or not by running regedit and looking in the HKEY_CLASSES_ROOT hive. Just do a search for the file in question, and see if it's in the CLASSID folder.
 
I'm getting a similar error message:
Failed to load control 'PRIX' from PRIX.ocx. Your version of PRIX.ocx may be outdated. Make sure you are using the version of the control that was provided with your application.
Error number is: 372

I have checked the registry HKEY_CLASSES_ROOT and an entry exists in the CLSID folder.

Any thoughts?
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top