Utilizando uma dll feita em delphi no C#

Veja neste artigo onde explico como utilizar um dll desenvolvida em delphi, no C#. De maneira simples mostrarei o uso desta dll em uma trata são de erro forcado.

Veja neste artigo onde explico como utilizar um dll desenvolvida em delphi, no C#. 
De maneira simples mostrarei o uso desta dll em uma trata são de erro forcado.


1 - No Delphi Crie um projeto "DLL Wizard", crie um formulário e nele insira os 
seguintes componentes :

 __________________________________________________
|Componente | Nome          | texto                |
 --------------------------------------------------
|Memo1      | MemoErro      |                      |
|panel1     | panel1        | Minha Dll Delphi \o/ |
|Form1      | FrmTelaErro   | Tela Erro            |
 --------------------------------------------------




2 - feito isso, deixe o seu aplicativo conforme o exemplo abaixo(No Formulário 
Criado)

unit Erro_dll; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TFrmTelaErro = class(TForm) MemoErro: TMemo; Panel1: TPanel; procedure FormShow(Sender: TObject); private FMostraErro: String; procedure SetMostraErro(const Value: String); { Private declarations } public property MostraErro : String read FMostraErro write SetMostraErro; end; var FrmTelaErro: TFrmTelaErro; procedure ChamaErro(Erro : String);export;stdcall; implementation {$R *.dfm} procedure ChamaErro(Erro : String); export;stdcall; begin try FrmTelaErro := TFrmTelaErro.Create(nil); FrmTelaErro.SetMostraErro(Erro); FrmTelaErro.ShowModal; finally FrmTelaErro.Free; end; end; { TFrmTelaErro } procedure TFrmTelaErro.SetMostraErro(const Value: String); begin FMostraErro := Value; end; procedure TFrmTelaErro.FormShow(Sender: TObject); begin MemoErro.Clear; MemoErro.lines.Add(FMostraErro); end; end.

3 - Não se esqueça de adicionar acima do begin do Library o:

exports ChamaErro;

4 - Após alterado a dll, compile ela e verifique se ela foi criada, feche o delphi e  abra o visual studio, crie um projeto com o nome que desejar, acima do construtor do formulário criado insira o seguinte código abaixo:

[DllImport(@"C:\Utilizando Dll\Dll Delphi\ErroDll.dll", CallingConvention=CallingConvention.StdCall, CharSet=CharSet.Ansi)] static extern void ChamaErro([MarshalAs(UnmanagedType.AnsiBStr)]string Erro);

5 - Troque o caminho "C:\Utilizando Dll\Dll Delphi\ErroDll.dll", e coloque o caminho da dll que acabamos de criar em delphi.


6 - Feito isso de um duplo click no botão inserido no formulário e insira o seguinte código :

try { for (int i = 0; i < 5000; i++) { if (i == 3000) { int iVemErro = 0; iVemErro = int.Parse("1564643848743848"); } } } catch (Exception ex) { ChamaErro(ex.Message); }

7 - Rode o sistema, ao clicar no botão, ele ira chamar a dll criada em delphi e 
passando a ele a mensagem do erro que aconteceu, conforme a figura abaixo.



8 - Espero que gostem do exemplo, Obrigado pela atenção e até a próxima

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados