我遇到了將.net本機DLL導入.net的問題。 我得到System.EntryPointNotFoundException。在C#中使用Delphi本機DLL(DllImport問題)
這裏是我的德爾福DLL:
procedure ProcedimientoEncriptar(texto,clave,resultado:PChar); export stdcall;
var ...
begin
....
....
end;
exports
ProcedimientoEncriptar ;
這是我的.Net的的DllImport(C#)代碼:
[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'函數'意味着有一個返回值。但你的不。而你的C#代碼有'void'返回。你的Delphi代碼真的是「功能」嗎?不是'程序'。問題中的Delphi代碼不能編譯。將代碼放入問題時請使用複製/粘貼。不要發佈虛假代碼。 –
你說得對,它是'程序',但我爲了測試目的而改變了它(我試着返回一個'PChar')。 –
什麼德爾福版本? 'PChar'是否是Unicode? –