从非托管DLL导入函数时0x8007007F的含义是什么?

时间:2017-08-17 09:43:19

标签: c# c++ pinvoke dllimport

我正在尝试将函数从非托管DLL导入到我的C#程序中。

这是我的代码:

[DllImport("MarkEzd.dll", EntryPoint = "lmc1_Initial2", CharSet = CharSet.Unicode,
    CallingConvention = CallingConvention.StdCall)]
public static extern int piplmc1_Initial(string PathName, bool TestMode);

....

int intlmc1_Initial = piplmc1_Initial(m_strEzCADSotwareFullPath, false);
if (intlmc1_Initial > 0)
{
   return;
}

错误来自法语:

  

无法加载DLL MarkEzd.dll,无法找到指定的过程Exception de HRESULT:0x8007007F

这个错误是什么意思?

1 个答案:

答案 0 :(得分:0)

错误消息告诉您加载的DLL不会导出名为lmc1_Initial2的函数。

您应该仔细检查此库的文档,并且可能很明显错误的位置。也许一个不同的DLL导出该函数。也许这个名字被错误地转录了。请注意,字母大小写很重要,因此您必须使所有大写和小写字母都正确。

如果文档没有帮助,请使用dumpbin或Dependency Walker等工具检查DLL的导出函数名称。