首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DllImport和EntryPointNotFoundException

DllImport和EntryPointNotFoundException
EN

Stack Overflow用户
提问于 2014-05-13 22:47:15
回答 2查看 928关注 0票数 0

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

代码语言:javascript
复制
System.EntryPointNotFoundException

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

这一例外的可能原因是什么?我该怎么处理这件事。请帮帮我。

以下是我的代码:

代码语言:javascript
复制
 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();
    }
}
EN

回答 2

Stack Overflow用户

发布于 2014-05-14 16:09:45

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

  • 该函数根本不是由DLL导出的。
  • 您键入的函数名有误。请注意,导出的函数名称区分大小写。
  • 该函数已导出,但具有修饰或损坏的名称。

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

票数 2
EN

Stack Overflow用户

发布于 2014-05-13 22:56:47

试着这样做(如果你对dll规范有正确的定义)。

代码语言:javascript
复制
 [System.Runtime.InteropServices.DllImport(@"Your.dll", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
    private static extern int GetWhatever(string vone, string vtwo, string vthree);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23634554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档