繁体   English   中英

在C#中使用Delphi本机dll(DllImport问题)

[英]Using a Delphi native dll in C# (DllImport issue)

我在将Delphi本机dll导入.net时遇到问题。 我收到System.EntryPointNotFoundException

这是我的delphi dll:

procedure ProcedimientoEncriptar(texto,clave,resultado:PChar); export stdcall;
    var ...
    begin
    ....
    ....
    end;

    exports
      ProcedimientoEncriptar ;

这是我在.Net(C#)代码上的DllImport:

[DllImport("CryptoDLL.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
        public static extern void ProcedimientoEncriptar([MarshalAs(UnmanagedType.LPStr)]string texto, [MarshalAs(UnmanagedType.LPStr)]string clave, [MarshalAs(UnmanagedType.LPStr)] StringBuilder resultado);

迭戈,任何帮助将不胜感激。

System.EntryPointNotFoundException的唯一解释是C#代码找到的DLL不是从您显示的Delphi代码生成的DLL。 所以,也许C#代码正在挑选DLL的过时版本。 或许它正在挑选一个完全不同的DLL。

例如,我的系统在system32目录中有一个名为cryptdll.dll的DLL。 很可能是你的C#代码找到的DLL。

为了确保找到正确的DLL,您需要将Delphi DLL的副本放在与C#可执行文件相同的目录中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM