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