Se o parametro for menor que 255, vc pode usar shortstring.

[Paulo Brito]
 -----Original Message-----
From: Joao Morais [mailto:[EMAIL PROTECTED]
Sent: sábado, 5 de março de 2005 16:52
To: delphi-br@yahoogrupos.com.br
Subject: Re: [delphi-br] Parametros para DLL


  [EMAIL PROTECTED] wrote:

  > criei uma dll com uma funcao q recebe dois parametros "BufferIn e
  > BufferOut: PChar".
  > o problema é q o valor a ser passado para BufferIn contem caracteres
  > NULL (Chr(0)).
  > O conteudo de BufferOut podera conter chr(0) tambem.
  > Sendo o caracter finalizador do PChar, o proprio chr(0), o valor de
  > BufferIn
  > chega truncado na funcao.
  >
  > Estou evitando usar parametros com string, pois teria q distribuir a
  > dll de gerencia
  > de memoria e adicionar no uses a unit sharemem em todos os prg q
  > chamam a dll.
  >
  > O tamanho do conteudo varia, podendo chegar a 2000 bytes.
  > Uma solucao seria passar os parametros como array of char. Mas fiquei
  > na duvida de
  > como passar um array por parametro para dll.
  >
  > Se tiver alguma dica, sera bem vinda.
  >
  > Valeu!

  Bom, não levo muito jeito para DLLs mas vou tentar contribuir.

  Cria uma estrutura:

  TMyBuffer = record
     Len: Longint;
     Buffer: array [0..2047] of Char;
  end;

  no programa e na DLL. No programa passe @VarMyBuffer, e na DLL receba
  como um Pointer. Por fim, use um cast:

  TMyBuffer(VarPointer^).Len
  TMyBuffer(VarPointer^).Buffer

  para acessar o comprimento e o Buffer. Corre o risco de funcionar ;-)


  --
  João Morais


  --
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por:







----------------------------------------------------------------------------
--
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo!.



[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a