exportar funçoes overload da dll
[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]
E para importar:
[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]
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
Curtidas 0
Respostas
Michelli88
04/08/2006
onde esta
lê-se
procedure MensagemErro(msg: PChar); stdcall; overload; begin ... end;
lê-se
procedure MensagemErro(msg: String); stdcall; overload;
begin
...
end;
GOSTEI 0
Massuda
04/08/2006
Acredito que isso não seja possível; você vai ter que usar dois nomes diferentes para essas functions/procedures.
GOSTEI 0
Mkoch
04/08/2006
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).
GOSTEI 0