如何像非托管C ++函数一样调用C#dll方法

时间:2019-04-26 15:37:51

标签: c# dllexport

这可能很幼稚,但我想从非.NET客户端调用.NET .dll库方法。我在这样声明的C ++ dll中有一个函数:

extern "C" __declspec(dllexport) int foo();

这可以很好地工作,但是现在我想在C#中具有相同的功能。假设代码是这样的:

namespace MyNamespace
{
    public class MyClass
    {
        public int Foo()
        {
            // Do something
            return 0;
        }
    }
}

我正在寻找某种方法来调用方法Foo()。我正在使用一个仅用于函数调用和.dll路径的API调用程序。为了生动地说明这一点,对C ++版本的完整调用如下所示:

~API "myDllPath.dll", "foo";

我尝试了所有带有static关键字的组合,并且在方法名称bu中包括了名称空间,但似乎没有任何效果。无效的东西:

~API "myDotnetDllPath.dll", "Foo";
~API "myDotnetDllPath.dll", "MyNamespace.MyClass.Foo";

我的下一个猜测是创建一个C ++ / CLI程序并引用我的C#代码,但我宁愿避免这种情况。可能有某种属性或其他魔术可以将Foo()方法暴露给外界吗?

0 个答案:

没有答案