Development in VB 6.0

There are several projects in VB 6.0. Most of these projects are ActiveX DLLs. When developing, projects take the ".dll" reference of other projects, but this prevents us from debugging. So, for this we need to refer to the .vbp project. However, by accepting a project reference, we will ask for binary compatibility.

During development, should you use design compatibility and build projects in DLLs for deployment?

+1


source to share


3 answers


It's okay to reference vbp during development, just make sure you maintain binary compatibility. If you don't, you will make the registry a nice mess and deployment will be a disaster. Keep in mind, however, that even with binary compatibility, every time you change the DLL's generic interface, you create a direct reference in an OLE registry entry.



+2


source


We have four layers of DLLS in the CAD / CAM software we use for my cutting machines. We dealt with this by creating a compatibility directory that contains the DLL versions of PREVIOUS. With this, we can continue to use binary compatibility.

The process is as follows.

  • Compatibility has DLL version 119 in it.
  • Compile version 120 and free it
  • Copy DLL Revision 120 to compatibility directory.
  • Development
  • Test
  • Compile Revision 121 and release it.
  • Copy DLL Revision 121 to compatibility directory.
  • [repeat]


The main issue you need to look out for is the lowest level changes to the DLLs you are using. Visual Basic 6 uses the #include statement when creating its internal type libraries. The execution will have to confuse its binaries compatibility or not. Note that you can see this using the OLE View tool that ships with Visual Studio 6.

The solution to this problem is to compile the low level DLL and put it in the compatibility directory immediately. The resulting internal typelibs for higher-level DLLs will now correctly determine if you are compatible or not.

Remember the binary compatible means you can do is add a method or property. You cannot change an existing method name or argument list. (this is a signature in COM terms)

+1


source


You should be able to debug dll references. Did you start projects in the correct order? Or you can add all / some DLLs to the same "project group" (* .vbg).

+1


source







All Articles