DllImport and EntryPointNotFoundException

本文关键字:EntryPointNotFoundException and DllImport | 更新日期: 2023-09-27 18:03:02

在我的应用程序中,我必须动态加载DLL。我已经使用DllImport属性动态加载了一个dll。但是我得到了以下异常:

System.EntryPointNotFoundException

附加信息:无法在DLL zkemkeeper.dll中找到名为"Connect_Net"的入口点。

这个异常可能的原因是什么?我该如何处理?请帮帮我。

下面是我的代码:

 public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    [DllImport("C:''Windows''SysWOW64''zkemkeeper.dll", EntryPoint = "Connect_Net")]
    public static extern bool Connect_Net(string IPAdd, int Port);
    [DllImport("C:''Windows''SysWOW64''zkemkeeper.dll", EntryPoint = "Disconnect")]
    public static extern void Disconnect();


    private void button1_Click(object sender, EventArgs e)
    {            
        var res = Connect_Net("192.168.1.201", Convert.ToInt32(4370));
        Disconnect();
    }
}

DllImport and EntryPointNotFoundException

这个错误只有一个解释。也就是说,所讨论的DLL不导出名为Connect_Net的函数。一些可能的原因是:

  • DLL不导出函数
  • 您输入了错误的函数名。注意导出的函数名是区分大小写的。
  • 函数被导出,但有一个修饰或修改的名称。

使用dumpbin.exe /exports列出DLL导出的函数

尝试这样做(如果您有正确的dll规范定义)。

 [System.Runtime.InteropServices.DllImport(@"Your.dll", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
    private static extern int GetWhatever(string vone, string vtwo, string vthree);
相关文章:
  • 没有找到相关文章