Hi,
I have no idea how to do this on a client's computer, or make an
installation program to do this on a client's computer:
My main application was written in VB6.0. It used to use a VJ6.0 ActiveX
dll for Java's BigInteger class. Of course, there is no longer a MSJVM for
that dll, so I can't use it anymore because it won't work on most clients'
computers. So I rewrote the dll in VJ#, created the type library, did the
whole thing with making the strong name, etc. to make a COM Callable
Wrapper.
In VB6.0 I just make a reference to the type library of my VJ# dll and I can
use the dll--everything works fine. It treats the dll like an ordinary
ActiveX dll on my development computer, and my main application can use it
properly.
When I try to install the main program (I usually use Inno Setup to make the
installation program) and the dll onto a client machine and use the dll, I
get the Error 429: unable to create ActiveX component.
Two longshot things I have considered are rewriting BigIntegers from scratch
in VC6.0 (*a lot* of trouble!), and migrating the entire source into VS.net
(the codebase is kind of large though!)
What should I do?
Andrew D. Newbould - 07 May 2005 02:31 GMT
>Hi,
>
[quoted text clipped - 22 lines]
>
>What should I do?
Pray ... Panic ... Sorry just kidding !
Error 429 is normally known as an "OLE Automation Error" and is commonly
caused by missing components required by your package (sometimes
referred to in a nice kind of way as "DLL Hell"). One of the biggest
causes of this tends to be DAO and the nice "DAO350.dll" which has a
habit of getting trashed by installing software like Access, Office etc.
As you have written a VJ# ActiveX component it would suggest that part
of the .Net Framework required by your component is missing (or wrong
version installed). Alternatively, check the dependencies of your
component to help spot the problem.
Just because the VJ# component is a .Net component does not mean that it
will work automatically on your clients machine (even if it is XP or
W2K3 etc). After all, he might not have installed the Framework or
upgraded it to the latest version. Personally, I would consider
including the .Net Framework redistributable within your package that
matches the one installed on your development PC.
Kind Regards,

Signature
Andrew D. Newbould E-Mail: newsgroups@NOSPAMzadsoft.com
ZAD Software Systems Web : www.zadsoft.com
Aaron Lovi - 07 May 2005 06:11 GMT
Hi,
I wish it were just that the client didn't have the framework installed. I
installed the 1.1 framework and the VJ#.net redistributable...no dice.
I have the vague feeling that I have to register the typelib, or the dll on
the client machine in some way that I'm not doing. I thought Inno Setup
took care of this when you use the regtypelib flag. Or maybe it's something
else entirely...
Help Please??
>>Hi,
>>
[quoted text clipped - 23 lines]
>
> Kind Regards,
[SolarAngel] - 25 Jun 2005 05:50 GMT
HM,
does regsvr32 MyProject.dll works on your dll ???
and if it does, your DLL must be registered on client machine
let me see you said INNO...
here it is find next section where is your dll located
--------------SECTION:
[Files]
...
Source: "C:\My Projects\yVBProxy\Install\Files\yVBProxy.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist regserver sharedfile
uninsneveruninstall
...
--------------
regserver - keyword must stand for file to be registered durring installation.
maybe to use some version checking also if file does exist would be nice.
hope this helps q;-)
[SolarAngel]
| Hi,
|
[quoted text clipped - 40 lines]
| >
| > ZAD Software Systems Web : www.zadsoft.com