C#.net中存在入口点错误的非托管dll
我有一个名为OMGICardDll.dll的dll,它与usb插件智能卡设备通信,以从智能卡读取数据 以下是我使用的代码:C#.net中存在入口点错误的非托管dll,c#,C#,我有一个名为OMGICardDll.dll的dll,它与usb插件智能卡设备通信,以从智能卡读取数据 以下是我使用的代码: public partial class Form1 : Form { [DllImport("OMGICardDll",EntryPoint="ReadName",ExactSpelling=true, CallingConvention = CallingConvention.StdCall,SetLastError=false)] public sta
public partial class Form1 : Form
{
[DllImport("OMGICardDll",EntryPoint="ReadName",ExactSpelling=true, CallingConvention = CallingConvention.StdCall,SetLastError=false)]
public static extern string ReadName();
//Form1 fm = new Form1();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnSave_Click(object sender, EventArgs e)
{
txtName.Text = ReadName();
}
}
当我单击“保存”按钮时,我发现System.EntryPointNotFoundException错误可能表明可以找到并加载
OMGICardDll.dll
,但函数ReadName
不存在或未从中导出
你能确认例程的拼写是否与此完全相同吗?什么是出口?(实际上不称为
ReadNameA
或ReadNameW
?)仅使用精确拼写如果您知道自己在做什么,请使用dumpbin.exe/exports查找真实姓名。不能按原样pinvoke此函数,当pinvoke封送器尝试释放返回的字符串时,它将崩溃。返回类型必须是IntPtr,Marshal.PtrToStringAnsi()才能转换。