Não tem mistério!

Pra exemplificar, cria uma DLL com o seguinte projeto abaixo:

(((INÍCIO DLL)))
library StrShortWideLib;

uses SysUtils;

{$R *.res}

function ShortUpperCase(s: ShortString): ShortString; stdcall;
begin
  Result := UpperCase(s)
end;

function WideUpperCase(s: WideString): WideString; stdcall;
begin
  Result := UpperCase(s)
end;

exports
  ShortUpperCase,
  WideUpperCase;
  
end.
(((FINAL DLL)))

Depois, cria uma aplicação console que usa as funcões dessa DLL compilada, 
assim:

(((INÍCIO EXEMPLO)))
program TstShortWideLib;

{$APPTYPE CONSOLE}

function ShortUpperCase(s: ShortString): ShortString; stdcall;
  external 'StrShortWideLib.dll' name 'ShortUpperCase';

function WideUpperCase(s: WideString): WideString; stdcall;
  external 'StrShortWideLib.dll' name 'WideUpperCase';

begin
  WriteLn(ShortUpperCase('delphi'));
  WriteLn(WideUpperCase('rocks'));
  WriteLn(Eoln);
end.
(((FINAL EXEMPLO)))


Simples assim!
Sds.



________________________________
To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Thu, 25 Sep 2008 13:22:31 -0400
Subject: Re: [delphi-br] Retorno String em DLL no Delphi



Oi João, Wesley e Rubem.
Como eu to correndo contra o relógio, mudei tudo pra Pchar agora.
Não tinha colocado o sharemem no uses do Aplicativo tbm, acho que foi por
isso que não funcionou.

Rubem, como seria a alocação desses ShortStrings? Normal mesmo ou
tem algum "esqueminha"?

Obrigado pelas dicas, pessoal.

Sérgio Cavalcante

2008/9/25 Joao Morais <[EMAIL PROTECTED]>

> sergio cavalcante wrote:
>> Oi João,É conheço bem isso, fui programador C/C++ por 5 anos hehehhe..
>> Só que achei que o Delphi cuidasse de mais coisa pra mim, como ele
>> sempre faz :D
>>
>> Mas valeu, to mudando tudo pra Pchar mesmo.
>
> Cuidar ele cuida, mas ele não tem controle sobre a dll e daí não existe
> mágica.
>
> No entanto, reli sua mensagem original e parece que você cria a dll no
> próprio delphi. Neste caso o sharemem deveria funcionar, mas como o
> Wesley falou, você tem que colocá-la no seu projeto também. Manda mais
> detalhes do problema que você teve.
>
> Joao Morais
>
>
>

--

Atenciosamente,
------------------------------
Sérgio Cavalcante
Mitros Tecnologia


_________________________________________________________________
Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver 
offline. Conheça  o MSN Mobile!
http://mobile.live.com/signup/signup2.aspx?lc=pt-br

Responder a