Finding circular references in VB6?

You have projects that form a circular chain of references. Use the menu Project and then References to see which other projects your are references. Then do this for all the other projects that are part of the application.

Draw a rough graph of what links to what and at some point you will find the references loop back to one of the projects.

You have projects that form a circular chain of references. Use the menu Project and then References to see which other projects your are references. Then do this for all the other projects that are part of the application.

Draw a rough graph of what links to what and at some point you will find the references loop back to one of the projects. You only need to focus on the references to projects you created yourself. Also you will need to check any projects you created that includes custom ActiveX Controls.

This is found under the menu Project->Components. Likely you will find that there is only a handful of classes you are referencing. In that case you can separate them out into another activex DLL/library and have the original projects reference that instead of each other.

The reason this issue arises is because COM relies the type libraries embedded in the library to call the classes and their methods. Referenced libraries are included in this typelib in a manner similar to a include file in C. Circular references have no "bottom" so COM can't get to the bottommost library to form the typelib.

I eventually figured it out by just commenting out the Implements and seeing when it started compiling. I was hoping that there was a quicker solution though - I work for a large company and had I been dealing with a bigger project it would've taken forever to do it manually. – Xodarap Jul 21 at 14:03 @Xodarap: Typelibs include only public methods/properties of the classes in a project.

If you try not to include "foreign" data-types in these no importlib is generated. Keeping external libs to a minimum is a best practice. I'm regularly using As Object instead of strongly-typed interfaces and As Long instead of "foreign" enums on my public interfaces.

– wqw Jul 21 at 17:21 IF you use As Object be sure to test for performance. As it takes ten time as long for VB6 to parse the references to a late bound object. In addition you lose all the benefits of type checking at compile time.

Like anything you need to be aware of the pros and cons of the feature. – RS Conley Jul 22 at 13:56 @RS Conley: I'm always casting As Object params/properties to local strongly-typed vars before using these. This as a sanity check.

– wqw Aug 18 at 14:40.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions