Я предполагаю, что вы определяете точку входа метода на стороне .NET как-то так?
internal static class Delphi
{
[DllImport("delphi32bitlibrary.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Encrypt(
IntPtr parameter1,
string parameter2,
out string parameter3);
}
и затем вы вызываете его где-то аналогичным образом?
string encryptedString;
Delphi.Encrypt(IntPtr.Zero, "test", out encryptedString);
Если это так (ваш пробег может отличаться в реальной реализации), вы можете переписать его следующим образом:
string encryptedString;
try
{
Delphi.Encrypt(IntPtr.Zero, "test", out encryptedString);
}
catch (Exception ex)
{
EventLog log = new EventLog();
log.WriteEntry(ex.Message + "\n" + ex.StackTrace, EventLogEntryType.Error);
}
Это должно внести в журнал событий компьютера подробное объяснениепроизошло, когда был назван 32-битный кусок.Оттуда вы (и, возможно, мы) можете получить некоторые убедительные доказательства того, что может быть неудачным.