来自非托管delphi DLL的相对路径引发异常

本文关键字:路径 相对 异常 DLL delphi | 更新日期: 2023-09-27 17:49:40

我有一个Delphi DLL与导出函数。我想要一个相对路径在我的dllimport语句与DLL,其中可执行的Windows窗体可以找到。然而,我收到了这个异常:

附加信息:无法找到入口点名称。

public class NativeMethods {
    [DllImport("DelphiDll.dll",
               EntryPoint = "InitDll",
               CallingConvention = CallingConvention.StdCall)]
    ...

当我放入绝对路径时,它可以正常工作。有什么办法解决这个问题吗?

来自非托管delphi DLL的相对路径引发异常

因为您只指定了DLL名称而没有指定其路径,所以使用系统DLL搜索路径来定位DLL。这里记录了:https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586.aspx

由于错误是入口点未找到,这表明已找到DLL,但它不导出该函数。您还报告使用绝对路径找到了入口点。根据这些证据,我们可以得出结论,在您的机器上有这个DLL的多个版本。

最好将DLL放在与可执行文件相同的目录中。这是搜索的第一个位置。将正确版本的DLL放在那里。