I have a simple class library written in c#.
using System; namespace TestDll { public class Test { public string HelloWorld { get { return "Hello World"; } } } }
My question is how can I call this HelloWorld function from Microsoft Office Visual Basic (which I think is VB6)?
My first step was to add the DLL as a reference - but on browsing and selecting the compiled DLL the message "Can't add a reference to the specified file." was thrown.
Can anyone point me in the right direction as to why/how to get this working?
Thanks in advance SO!
Simple C ProgramsHello World Program in C. C program to check whether the given number is positive or negative. Reverse an input number using recursion. Program to find greatest of three numbers. C Program to print Fibonacci series in a given range.
In C programming language, %d and %i are format specifiers as where %d specifies the type of variable as decimal and %i specifies the type as integer. In usage terms, there is no difference in printf() function output while printing a number using %d or %i but using scanf the difference occurs.
You can't access a static member via COM interop. In fact your code doesn't even compile, the method should be in a class. Here is how you can do it:
[InterfaceType(ComInterfaceType.InterfaceIsDual)] [Guid("01A31113-9353-44cc-A1F4-C6F1210E4B30")] //Allocate your own GUID public interface _Test { string HelloWorld { get; } } [ClassInterface(ClassInterfaceType.None)] [Guid("E2F07CD4-CE73-4102-B35D-119362624C47")] //Allocate your own GUID [ProgId("TestDll.Test")] public class Test : _Test { public string HelloWorld { get { return "Hello, World! "; } } }
The project properties Build tab, select Register for COM interop. So you can see the results quickly. To install the dll on another machine you need to use regasm.
To then consume this:
Dim o : Set o = CreateObject("TestDll.Test") MsgBox o.HelloWorld
You can also reference the dll and use early binding:
Dim o As TestDll.Test Set o = New TestDll.Text MsgBox o.HelloWorld
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With