As you know with
Visual Basic 6.0, it is possible develop a COM server and implement them in a
Visual Basic client program. But this is being done by using Visual Basic. You
may wonder about the idea of calling this DLL in a VB.NET Application. Well,
VB.NET language provides us a way to call this COM server in a program. When we
compile a VB.NET program an Intermediate Language is generated and it is called
as Managed Code. A Visual Basic 6.0 DLL is Unmanaged, meaning it is not being
generated by Common Language Runtime. But we can make this VB DLL to
interoperate with VB.NET, by converting the same into .NET compatible version.
Following example shows how to create a simple server by using Visual Basic 6.0
and implementing it in a VB.NET client program.
Creating an ActiveX DLL using Visual Basic
6.0.
- Fire up Visual Basic and select ActiveX DLL Icon from the New Project dialog box.
- Change the class name to something meaningful like "Our_csharp".
- Now supply the following code:
Public Function Show()
MsgBox("Message box created by using Visual Basic")
End Function
- For creating a function, you can use Tools | Add procedure menu.
- Save the project by supplying relevant class and project names.
- Change the Project name and Description by selecting Project | Properties menu.
- Set the Binary Compatibility from the components tab of the above menu.
This will not create separate GUID upon each compilation.
- Finally create your DLL by selecting File | Make Csharpcorner.dll. This is the name by which you save your VB project.
- That's all. Your DLL is now ready to use in a VB.NET program.
It is not possible for
a VB.NET program to communicate with a VB DLL without converting the same into
.NET equivalent. For doing so .NET SDK provides a tool called tlbimp. It stands
for Type Library Import and converts your DLL to its equivalent .NET Assembly.
For the above project supply the following command after properly setting the
environment Variables:
tlbimp
Csharpcorner.dll /out:Csharp.dll.
A new .NET compatible
file called Csharp.dll will be placed in the appropriate directory. Type in the
following VB.NET client program and execute as usual:
Imports Csharp
Imports System
Public Class Csharpapply
Public Shared Sub main()
Dim c As New Our_csharp
s.Show()
End Sub 'main
End Class 'Csharpapply
Upon
execution, you can be able to see the message box from our VB DLL.
Notes:
If you
are using Visual Studio. NET, then you can refer the DLL from Project | Add
Reference | COM Tab. Select your DLL by using the browse button. This will add
reference to your project. After adding a reference copy the above code and
execute.
.NET
SDK users have to run a batch file named corvars.bat before attempting
compilation. This batch file is included with the SDK and located in the bin
directory.