[英]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.