使用GetProcAddress从C#调用C#DLL

使用GetProcAddress从C#调用C#DLL,c#,dll,C#,Dll,我的程序需要从运行时指定的C#dll文件中调用方法。 为了做到这一点,我想到了如下使用GetProcAddess: string sytDll = @"C:\Programming\dllexample.dll"; IntPtr DllLoaded = LoadLibrary(sytDll); if (DllLoaded != IntPtr.Zero) { IntPtr pSytCheck = GetProcAddress(DllLoaded, "f1"); } Dlloaded返回

我的程序需要从运行时指定的C#dll文件中调用方法。 为了做到这一点,我想到了如下使用GetProcAddess:

string sytDll = @"C:\Programming\dllexample.dll";
IntPtr DllLoaded = LoadLibrary(sytDll);
if (DllLoaded != IntPtr.Zero)
{
   IntPtr pSytCheck = GetProcAddress(DllLoaded, "f1");  
}
Dlloaded返回一个值,但是GetProcAddress始终返回0

我想知道C#DLL的格式是否正确。这就是它的样子:

namespace dllexample
{
    public class Class1
    {
        public static int f1(int a)
        {
            return a;
        }
    }
}
我觉得我没有正确声明dll,或者我没有使用正确的函数名

谁能告诉我我做错了什么


谢谢

<代码> GeCopeToels//Cord>将用于C或C++导出函数。对于.Net,您需要加载程序集并使用反射(我认为),这是行不通的。在C#中,此类问题通过以下方式解决: