【发布时间】:2012-09-27 13:52:03
【问题描述】:
我在将 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);
任何帮助将不胜感激, 迭戈。
【问题讨论】:
-
我认为这不是您的实际代码。 Delphi
function意味着有一个返回值。但你的没有。并且您的 C# 代码有void返回。你的Delphi代码真的是function吗?不是procedure。您在问题中的 Delphi 代码无法编译。将代码放入问题时请使用复制/粘贴。不要发布虚假代码。 -
你说得对,它是
procedure,但我出于测试目的更改了它(我尝试返回PChar)。 -
什么Delphi版本?
PChar是不是 Unicode?span> -
我不确定,我对 Delphi 还很陌生,但我正在使用 Embarcadero 的解决方案 (Borland Developer Studio 2006)...