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 SkipVought 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
0
0
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.
 
Yes, indeed. If you have an outdated control, you will generally still have the same classid on the old version as the new one has. (To learn more about how this applies in VB6, this is pretty clear.) This is because backward compatibility is a requirement of the COM specification, meaning that an application (client) written using the older control should be able to use the new control transparently. So the new control has to have the same classid as the old one for the old client to be able to find it.

However, forward compatibility is of course NOT required. If you have a client that is expecting the later version of the control, and you have the older version, you will generally get some sort of error message like this one. Unless, of course, it's a Microsoft control, in which case you'll get something more helpful like "Application-defined or object-defined error" or "ActiveX Control can't create object." In any case, you'll need to get the newer version of the control and replace the old one.

HTH

Bob
 
>Any help will be much appreciated.

>Thanks in advanced

You can't just stick an EXE created by VB onto another machine (well, under very limited conditions you can). Nor can you expect your EXE to work on the development machine if you remove VB after the EXE is created.

In both situations (as most people here have been trying to tell you) large numbers of files that the EXE is dependant upon are missing, as are a bunch of registry settings.

Frankly, trying to manually determine, instal and register all the necessary files is going to end up in a world of pain (unless you know EXACTLY what you are doing).

So you should - as advised here - use an installer program. It will build the correct dependancy list for you, and then use that list when doing the install on a different machine(again, I wouldn't simply try to use that dependancy list as a list of files to manually copy; there's more to it than that).

So here are the steps:

1) Ensure VB properly installed on development machine
2) Develop application
3) Compile it
4) Use installer software of your choice to create setup package
5) Run setup package on target machines

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top