C#.net中存在入口点错误的非托管dll

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

我有一个名为OMGICardDll.dll的dll,它与usb插件智能卡设备通信,以从智能卡读取数据

以下是我使用的代码:

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()才能转换。