Compiling a DLL

Hi All,
 
   Suppose I am writing 2 ActiveX Dlls, say A and B .
First, I write A , compile it and register it on Server ( Which is a different machine from the one in which it was compiled).
   Now B calls some method of A . So, I add a reference to A and compile it. Everything works fine.
   Next, due to some changes, I need to modify A. I modify, re-compile and re-register ,putting the file at the same place.
   Now when I call the method of A from B, it says "Type Mismatch". I figured out that I need to recompile B as well to make everything run correctly.

Why is this so ?

Reagrds,
Rasaraja
rasarajaAsked:
Who is Participating?
 
ajexpertCommented:
Ensure while compiling a DLL for second time make it as Binary Compatibility.  To achieve this
   Project->Project Properties->Component->Binary Compatibility

This will solve your problem
0
 
corvanderlindenCommented:
>> Why is this so

If you do not have binary compatible set, after compiling your A dll again, new GUID's IID's etc for this dll are registered into the registry. Your B Dll, that you compiled after A, has A's old GUID's, IID's etc compiled into its binary. So when B executes it looks for these old ones in the registry but these are no longer associated with the new A dll.

0
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

 
rpaiCommented:
As suggested above, switch to Binary Compatibility mode when you begin work on the second version of any component, if you want applications compiled using the earlier version to continue to work using the new version.

0
 
corvanderlindenCommented:
Just switching to Binary compatibility mode is only part of the solution to create and maintain your ActiveX DLL component. There are some good articles in MSDN about the (not so trivial) subject
0
 
rpaiCommented:
Please maintain your open questions.
Questions Asked 21
Last 10 Grades Given A A A A A B B C B B  
Question Grading Record 10 Answers Graded / 10 Answers Received
0
 
rasarajaAuthor Commented:
Hi Cor*,
  What is GUID and IID ? And can u give me the links in MSDN?
Regards,
Rasaraja
0
 
rasarajaAuthor Commented:
rpai,
  If I am not satisfied with the answers, I guess I have every right not to award any point to anybody .
Regards,
Ras
0
 
rpaiCommented:
rasaraja,
This might be of help in closing some of your open questions.
http://www.experts-exchange.com/jsp/cmtyQuestAnswer.jsp#3
0
 
DanRollinsCommented:
Hi rasaraja,
It appears that you have forgotten this question. I will ask Community Support to close it unless you finalize it within 7 days. I will ask a Community Support Moderator to:

    Split points between: ajexpert and corvanderlinden

rasaraja, if you think your question was not answered at all or if you need help, just post a new comment here; Community Support will help you.  DO NOT accept this comment as an answer.

EXPERTS: If you disagree with that recommendation, please post an explanatory comment.
==========
DanRollins -- EE database cleanup volunteer
0
 
SpideyModCommented:
per recommendation

SpideyMod
Community Support Moderator @Experts Exchange

ajexpert points for you at:
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20519695.html
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.