I looked at other posts and couldn't find the solution.
I am trying to use C# dll I created in VBA code without having to add reference.
In my VBA code, I declared:
Public Declare Function message Lib "path_to_my_dll" _
(ByVal message As String) As String
Sub Test()
Dim hello As String
hello = message("hi!!")
Debug.Print hello
End Sub
I get an error saying entry point for my dll couldn't be found.
The C# Code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace DLLImport
{
public class Class1
{
[DllImport("DLLImport", EntryPoint = "Run")]
extern string Run(string message)
{
return message;
}
}
}
Thank you in advance for your help!!
DllExport, not aDllImport. VBA will also only use the StdCall calling convention. I've run across claims that this is possible to do from an unmanaged c++ caller, but have never attempted it.Dll-Export-Attributeis available with c# yet, but you can try this Nuget package.