Fórum D7: DLL em C não retorna parâmetro passado por referência #365147

15/10/2008

0

Prezados.

Estou utilizando uma DLL escrita em C++ no Delphi 7. Até aí tudo OK. Acesso as funções e procedimentos sem problemas. Contudo, existe uma única função que recebe um parâmetro passado por referência, ou seja, ela deveria alterar o conteúdo do parâmetro mas não altera.

Vejam trechos do código:

function fRead(var pDados: String; pCodigo: Integer; pTamanho: Integer): Integer; stdcall; external ´functions.dll´;

// Esta é a implementação de acesso a função, está OK, pois ela acessa e executa o que tem de executar (retorna se sucesso ou erro)


procedure TForm1.Btn_LerClick(Sender: TObject);
var
vDados : String;
begin

Try

ShowMessage( IntToStr( fRead(vDados, 0, Length(vDados)) ) ); // Exibe código de sucesso ou erro

ShowMessage(vDados); // Exibe apenas o dialog... sem nenhum dado
Except
ShowMessage(´Erro ao ler.´);
end;
end;

Em suma, a função roda corretamente, mas não altera o conteúdo da variável passada como parâmetro, pois no segundo ShowMessage deveria exibir uma palavra que a função coloca na variável.

Os Srs tem alguma idéia do que está ´pegando´?

Grato


R.dallagnol

R.dallagnol

Responder

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

Aceitar