我的程序需要从运行时指定的 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,或者我没有使用正确的函数名称。
谁能告诉我我做错了什么?
谢谢
最佳答案
DLL 是完全合适的,不是问题所在。问题是我不知道你为什么要通过 GetProcAddress() 从 DLL 调用方法,而不是简单地将 DLL 导入你的程序并从其纯类调用函数。也就是说,你应该这样做:
- 从 GetProcAddress() 中删除您拥有的内容
- 将库 DLL 添加到要从中调用 DLL 方法的程序
- 使用
using Your_dll_name;
- 创建一个快速类选择器,例如DLLClass dllclass = new DLLClass();
- 并使用 dllclass 调用该方法。
关于c# - 使用 GetProcAddress 从 C# 调用 C# DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22942904/