Solved

Problem with REGSVR32 and VB DLL

Posted on 1997-11-05
13
394 Views
Last Modified: 2010-05-18
I have encountered a problem trying to register a VB Active DLL.  It's a bit complicated so I hope i can explain it clearly :)

1) Create an activeX DLL with clsClass1

2) Create an activeX DLL with clsClass2, which has a reference to clsClass1 AND a method in clsClass2 takes as a parameter clsClass1

3) Compile on machine 1 and create a project to reference and use clsClass2 and clsClass1...all is well

4) copy DLLs or clsClass1 and clsClass2 to machine 2 and run REGSVR32 on both Dlls

5)  create a project that references both DLLs and do a browse on clsClass2....the method that expects clsClass1 as a parameter now shows no parameters AND when you try to use that method you get a compiler error saying the function is restricted or does not recognize the parameter or return types.

For some reason using REGSVR32, the parameters defined as a specificy class causes problems.  If you go back and change the parameter to a general purpose object...it works fine on the second PC.  

Does anyone have any way to get around this problem?  In order to keep the GUIDs sane, I want to compile them in one place and distribute and register the DLLs to other developers on the project. HELP!!!!!
0
Comment
Question by:rmichels
13 Comments
 
LVL 3

Expert Comment

by:ChrisLewis
ID: 1439945
What order are you registering the classes in?

Are you regsvr32'ing Class1 first or class2?

chris
0
 
LVL 3

Author Comment

by:rmichels
ID: 1439946
I'm registering the lowest level dependent class first, so that is Class1.  Then I register class2.

Another twist to this problem, is that this seems to work, if Class1 is NOT a vb developed class, but a VC++ class.  It seems to me that REGSVR or the info in the DLL is wrong
0
 
LVL 2

Expert Comment

by:PedroMVGomes
ID: 1439947
have you try reportin this bug to microsotf?
0
 
LVL 3

Author Comment

by:rmichels
ID: 1439948
I have not reported this bug to microsoft, but I think a co-worker is probably going to post some information on the appropriate newsgroup.  I generally find the response from microsoft, via newsgroups to be unacceptable in the how long it takes to get an answer.
0
 
LVL 8

Expert Comment

by:MikeP090797
ID: 1439949
Look for RegSvr32 update at Microsoft FTP site.
0
 
LVL 3

Author Comment

by:rmichels
ID: 1439950
I have searched microsoft's site but could only find the same regsvr32.exe that I have (Aug 96).  Do you have an exact path for this file?
0
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 8

Expert Comment

by:MikeP090797
ID: 1439951
Sorry, I don't. It's someware deep down there.
0
 
LVL 3

Author Comment

by:rmichels
ID: 1439952
Sorry to reject, but I could not find any reference to an updated REGSVR32.EXE anywhere in MSDN. There is a REGSVR32A.EXE which contains the same REGSVR32.EXE that I am running.

Also, the problem appears to have been solved.  The compatibility options were not set correctly in the VB Project options.  Changes must must have been made that somehow negated the interface.

So I am going to request this question be deleted by Cust.Serv
0
 
LVL 1

Expert Comment

by:aprasrl
ID: 1439953
First:

In your project make SURE that the reference to clsClass1
comes BEFORE the reference to clsClass2 or it will NEVER
work (use the MoveUp/MoveDown arrows of references dialog)

Second Try this:

change the reference and the parameter in clsClass2 from
clsClass1 to "Object" this could solve the problem of the
object browser

I Hope I've been of some help, let me (all us) know... :-)
0
 
LVL 3

Author Comment

by:rmichels
ID: 1439954
Sorry, my last comment states I have figured this out (and what the problem was), and I have asked cust serv to delete question.
0
 
LVL 8

Expert Comment

by:mrmick
ID: 1439955
Why not compile both into one ActiveX.DLL?
0
 
LVL 3

Author Comment

by:rmichels
ID: 1439956
please read my previous comments. I have already solved this problem and have asked cust serv to delete..but they have not as yet.   The two units were not compiled into one dll because this a three tier design, with each tier containing appropriate DLL and EXE activeX components.
0
 
LVL 7

Accepted Solution

by:
linda101698 earned 200 total points
ID: 1439957
I'm posting the solutions rmichels stated solved the problem so the question can be saved in the PAQ.

The problem appears to have been solved. The compatibility options were not set correctly in the VB Project options. Changes must must have been made that somehow negated the interface.

The two units were not compiled into one dll because this a three tier design, with each tier containing appropriate DLL and EXE activeX components.
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now