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