Как я могу использовать код Delphi из приложения C #? - PullRequest
6 голосов
/ 18 мая 2011

У меня есть проект Delphi, и мне нужно написать приложение на C #, но я хочу использовать некоторые функции из этого проекта Delphi.Я не работал в Delphi раньше.

Я обнаружил, что могу создать DLL из кода Delphi и использовать ее непосредственно в C #.Как я могу это сделать?Или я также нашел несколько инструментов для конвертации в C #, но это было не так хорошо.Так какой же самый лучший способ?DLL или конвертировать?

Ответы [ 2 ]

11 голосов
/ 18 мая 2011

Вот очень быстрый пример, объясняющий, как сделать dll в Delphi, а затем как ее вызвать из C #. Вот код Delphi простого dll с одной функцией SayHello:

library DllDemo;

uses
  Dialogs;

{$R *.res}

Procedure SayHello;StdCall;
Begin
  ShowMessage('Hello from Delphi');
End;

exports
  SayHello;

begin
end.

Скомпилируйте этот код, и он создаст файл DLL.

Теперь код C # для вызова предыдущей процедуры в dll выглядит так:

using System.Runtime.InteropServices;

namespace CallDelphiDll
{
  class Program
  {
    static void Main(string[] args)
    {
      SayHello();
    }

    [DllImport("DllDemo")]
    static extern void SayHello();
  }
}

Поместите созданную Delphi dll в выходную директорию проекта C # и запустите приложение C #.

Теперь разверните этот простой образец, чтобы удовлетворить ваши требования.

1 голос
/ 18 мая 2011

Как уже предлагалось через DLL (вам нужно пометить функции соответствующим соглашением о вызовах, например, stdcall)

Другим решением было бы обернуть соответствующую функциональность в объект COM и использовать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...