Fórum exportar funçoes overload da dll #326844

04/08/2006

0

[color=blue:b449b6d0f5]Ola pessoal!!! Tudo bem com vcs?

Estou aqui novamente com mais uma questão q nao encontrei respostas na pesquisa aqui no forum...

A respeito de fazer funçoes[/color:b449b6d0f5][color=orange:b449b6d0f5][b:b449b6d0f5] overload[/b:b449b6d0f5] [/color:b449b6d0f5][color=blue:b449b6d0f5]dentro de uma [/color:b449b6d0f5][color=red:b449b6d0f5][b:b449b6d0f5]dll [/b:b449b6d0f5][/color:b449b6d0f5][color=blue:b449b6d0f5]e exportar elas...[/color:b449b6d0f5]

[color=green:b449b6d0f5]Bem, com algumas informaçoes que colhi aqui e ali, eu cheguei a alguma coisa mas nao funcionou ainda...[/color:b449b6d0f5]

[b:b449b6d0f5]é o código seguinte:[/b:b449b6d0f5]


library DLLDialogos;

uses
  Sharemem,
  SysUtils, ...
//------------------------------------------------------------------------------
procedure MensagemErro(titulo: String; msg: String); stdcall; overload;
begin
...
end;
//------------------------------------------------------------------------------
procedure MensagemErro(msg: PChar); stdcall; overload;
begin
...
end;
//------------------------------------------------------------------------------
Exports
  MensagemErro(titulo, msg: String) name ´MsgErro1´,
  MensagemErro(msg: String) name ´MsgErro2;
begin
end.


E para importar:
//------------------------------------------------------------------------------
procedure MensagemErro(titulo: String;msg:String);
stdcall; external ´DLLDialogos.dll´ name ´MsgErro1´; overload;
//------------------------------------------------------------------------------
procedure MensagemErro(msg:String);
stdcall; external ´DLLDialogos.dll´ name ´MsgErro2´; overload;
//------------------------------------------------------------------------------


[color=green:b449b6d0f5]
Bom pessoal, eu fiz isso mas nao deu certo, a msg de erro é a seguinte:
[/color:b449b6d0f5]
[b:b449b6d0f5]
[Error] DLLDialogos.dpr(75): E2276 Identifier ´MensagemErro´ cannot be exported
[/b:b449b6d0f5]

[color=red:b449b6d0f5][b:b449b6d0f5]E ai gente?[/b:b449b6d0f5][/color:b449b6d0f5]


Michelli88

Michelli88

Responder

Posts

04/08/2006

Michelli88

onde esta

procedure MensagemErro(msg: PChar); stdcall; overload; 
begin 
... 
end; 


lê-se
procedure MensagemErro(msg: String); stdcall; overload; begin ... end;



Responder

Gostei + 0

04/08/2006

Massuda

Acredito que isso não seja possível; você vai ter que usar dois nomes diferentes para essas functions/procedures.


Responder

Gostei + 0

04/08/2006

Mkoch

Na DLL de nomes diferentes aos metodos e na unit onde você importa de nomes iguais e overload mas com o respectivo name de cada uma (como você já está fazendo).


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar