Вызов C# DLL из Delphi XE2

bstr

  1. В C# проект DLL добавить в проект пакет NuGet под названием .NET DllExport
  2. В C# добавить экспортируемую функцию (пример с параметрами типа string)

[return: MarshalAs(UnmanagedType.BStr)]
[DllExport("Save", CallingConvention = System.Runtime.InteropServices.CallingConvention.Cdecl)]
public static string Save([MarshalAs(UnmanagedType.BStr)]string ID, [MarshalAs(UnmanagedType.BStr)] string Data)
{
............
return "OK";
}

  1. Билд DLL из C# папки x86 копируется в папку билда проекта на Delphi
  2. В Delphi добавляется описание вызова

function Save(ID: widestring; Data: widestring): pchar; cdecl; external 'sharp.dll' name 'Save';

ВНИМАНИЕ! При передаче строки из Delphi в C# использован тип widestring, а при возврате результатов из C# в Delphi — тип pchar.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Яндекс.Метрика