O'Reilly logo

COM+ Programming with Visual Basic by Jose Mojica

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Mixing COM+ and .NET

Many of you are feeling the urge to experiment with .NET components and like the new features in Visual Basic. Most likely, you have already made an investment in COM and would like to know how to use your existing COM components in VB 6 with the new .NET components. Microsoft is very aware of this need and has built in capabilities for mixing the two.

As you know from the previous sections in this chapter, code that runs in the CLR is managed code. It is in IL, and it is run by the common language runtime. The runtime has its own techniques for allocating objects and managing things like thread allocations and so forth. In the VB 6 world, code was unmanaged. The compiler translated your code to native code that the processor could run. Thus, if we are going to mix these two worlds, we must create intermediary components that enable us to travel to and from managed space into unmanaged space. Let’s address the idea of using VB.NET components from your Visual Basic 6 code first.

Using VB.NET Components with VB 6

Microsoft provides a tool called tlbexp.exe with the .NET SDK that enables you to create a type library (.TLB) file from an assembly manifest but does not register it. A type library (especially an unregistered one) does not really provide the functionality of a COM server. If we were to try to use a managed DLL as a COM server, the managed DLL would have to have the functionality of an in-process COM server. For example, it would have to have the four ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required