在我的应用程序中,我必须动态地使用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();
}
}
答案 0 :(得分:2)
此错误只有一个解释。即,有问题的DLL不会导出名为Connect_Net
的函数。一些可能的原因是:
使用dumpbin.exe /exports
列出DLL导出的函数。
答案 1 :(得分:0)
尝试这样做(如果你有正确的dll规范定义)。
[System.Runtime.InteropServices.DllImport(@"Your.dll", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
private static extern int GetWhatever(string vone, string vtwo, string vthree);