gpt4 book ai didi

c# - 使用 GetProcAddress 从 C# 调用 C# DLL

转载 作者:行者123 更新时间:2023-12-05 07:59:06 28 4
gpt4 key购买 nike

我的程序需要从运行时指定的 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com