Na aplicação que chama a função dentro da DLL

veja o exemplo do help.

var
  A: array[0..79] of Char;
  S: String;
begin
  S := 'Honk if you know Blaise.';
  SuaFuncaoDaDll( StrPCopy(A, S)  );
end;

StrPCopy popula o array e retorna o ponteiro para o mesmo.

Acredito que dentro da DLL tu possa usar strings normais, nunca desenvolvi
Dlls para te assegurar com certeza.


----- Original Message -----
From: "Marcelo Alves" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Wednesday, May 24, 2006 1:35 PM
Subject: Re: RES: [delphi-br] Criando DLL


Onde eu usaria esse StrPCopy? Na DLL ou na na aplicação que chama a DLL? E
quanto a segunda Pergunta que havia feito? Poderia me esclarecer?

Marcelo.

Em 24/05/06, Campus <[EMAIL PROTECTED]> escreveu:

> Sem dúvida, em Delphi também, com StrPCopy.
>
>
> ----- Original Message -----
> From: "Jonatã Castelo Branco" <[EMAIL PROTECTED]>
> To: <delphi-br@yahoogrupos.com.br>
> Sent: Wednesday, May 24, 2006 10:58 AM
> Subject: Re: RES: [delphi-br] Criando DLL
>
>
> > Então, acredito ser correto dizer que você deve
> > utilizar uma variável com a mesma característica do
> > PChar, uma vez que a dll pode ser utilizada em várias
> > linguagens de programação. Por exemplo, não quero te
> > confundir, mas se você utlizar tua dll em um
> > compilador de C, a variável que você vai passar como
> > parâmetro deve ser um char de n elemntos. No C, está é
> > uma string com terminação nula.
> >
> > int main(void) {
> >   ...
> >   char Str[10];  // declarando variáveis.
> >   ...
> >   TuaFuncao(...,Str,...);  // funcao da dll.
> >   ...
> > }
> >
> >
> > --- Campus <[EMAIL PROTECTED]> escreveu:
> >
> >
> > ---------------------------------
> > Exatamente. Só tentei simplificar, quem nunca teve
> > contato com linguagens
> > como C tem dificuldade para entender o coneito de
> > ponteiros. Apesar que
> > mesmo em Clipper se usa esse conceito, mas a grande
> > maioria dos
> > programadores que que tenho contato desconhece essa
> > facilidade, a passagem
> > de parâmetros por referência.
> >
> > Marcelo, Pchar, não é um tipo de dado própriamente
> > dito, é um ponteiro
> >
> > ele deve ser usado da seguinte forma:
> >
> > Var pDescricao: PChar
> >        cDescricao: String
> >
> > cDescricao := 'Rubem Nascimento da Rocha'
> > pDescricao := PChar(cDescricao)
> >
> > pDescricao agora "aponta" para cDescricao, ou seja,
> > contém o endereço de
> > memória onde cDescricao está armazenado. O que se
> > passa como parâmetro, é
> > esse endereço e não o conteúdo de cDescricao.
> >
> > O problema começa quando se usa pDescricao :=
> > Pchar('Rubem Nascimento da
> > Rocha')
> >
> >
> > ----- Original Message -----
> > From: "Rubem Nascimento da Rocha"
> > <[EMAIL PROTECTED]>
> > To: <delphi-br@yahoogrupos.com.br>
> > Sent: Wednesday, May 24, 2006 9:25 AM
> > Subject: Re: RES: [delphi-br] Criando DLL
> >
> >
> > > Não necessariamente um array, mas PChar é um
> > ponteiro para dados do tipo
> > > char. Sds.
> > >
> > >
> > > >From: "Marcelo Alves" <[EMAIL PROTECTED]>
> > > >Reply-To: delphi-br@yahoogrupos.com.br
> > > >To: delphi-br@yahoogrupos.com.br
> > > >Subject: Re: RES: [delphi-br] Criando DLL
> > > >Date: Wed, 24 May 2006 09:21:32 -0300
> > > >
> > > >No caso então quem for usar a minha DLL precisar
> > passar os parâmetros em
> > > >PChar??? Essa DLL que estou desenvolvendo será
> > usada em site em VB .NET.
> > > >
> > > >Marcelo.
> > > >
> > > >
> > > >Em 24/05/06, Campus <[EMAIL PROTECTED]> escreveu:
> > > > >
> > > > > Se não me engano, PChar é uma array de chars
> > terminado por um caracter
> > > > > nulo,
> > > > > e o String não.
> > > > >
> > > > > Basicamente é o segunte:
> > > > >
> > > > > "FILIPE"
> > > > >
> > > > > em PChar = FILIPE#0.
> > > > > em String = 6FILIPE.
> > > > >
> > > > > O primeiro byte do string contém seu tamanho,
> > por isso passar uma
> > string
> > > > > como parâmetro para uma DLL pode congelar o
> > Windows, uma vez que ele
> > não
> > > > > encontra o fim da string, que é marcado pelo
> > caracter nulo..
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > ----- Original Message -----
> > > > > From: "Filipe Belchior"
> > <[EMAIL PROTECTED]>
> > > > > To: <delphi-br@yahoogrupos.com.br>
> > > > > Sent: Tuesday, May 23, 2006 6:08 PM
> > > > > Subject: Re: RES: [delphi-br] Criando DLL
> > > > >
> > > > >
> > > > > Marcello,
> > > > >
> > > > > Explicar sobre PChar, tecnicamente, eu não sei,
> > rs..
> > > > > ..mas acontece o seguinte, usando string vc tem
> > resultado
> > > > > dos métodos todo errado!
> > > > >
> > > > > agora, sobre o form do report, vc falou pouco
> > sobre
> > > > > como vc esta fazendo. mostre como vc ta fazendo.
> > > > >
> > > > >
> > > > >
> > > > > --- Em delphi-br@yahoogrupos.com.br,
> > "marcelloassouza"
> > > > > <[EMAIL PROTECTED]> escreveu
> > > > > >
> > > > > > Felipe,
> > > > > >
> > > > > > Primeiramente, obrigado pela resposta, você
> > não sabe o quanto me
> > > > > > ajudou, você e os outros amigos do grupo.
> > Agora me diga uma coisa,
> > no
> > > > > > primeiro form o problema foi resolvido, agora
> > estou com problemas
> > > > > > quando ao outro que no Caso é um Report.
> > Quando uso o Report num
> > > > > > projeto comum, ele funciona normal ao chamar
> > qualquer obejto do
> > > > > > mesmo, mas agora num DLL, estou recebendo a
> > mesma mensagem de access
> > > > > > violation. Tenho que instacia-lo ou fazer
> > alguma chamada
> > diferenciada
> > > > > > para poder utilizá-lo na minha DLL???
> > > > > >
> > > > > > Outra coisa, porque Pchar ao invés de String?
> > Só para
> > conhecimento!!!
> > > > > >
> > > > > > Marcelo.
> > > > > >
> > > > > >
> > > > > > --- Em delphi-br@yahoogrupos.com.br, Filipe
> > Belchior
> > > > > > <[EMAIL PROTECTED]> escreveu
> > > > > > >
> > > > > > > ..outra coisa,
> > > > > > >
> > > > > > > no caso, vc ta usando ADO, já vou avisando
> > que vc terá problemas
> > > > > > > com ActiveX em projeto DLL.. para resolver,
> > faça o seguinte:
> > > > > > >
> > > > > > > no "OnCreate" do 1o form a ser criado no
> > projeto dll, inclua a
> > > > > > linha:
> > > > > > >
> > > > > > > CoInitialize( nil );
> > > > > > >
> > > > > > > ..e no "OnDestroy":
> > > > > > >
> > > > > > > CoUninitialize;
> > > > > > >
> > > > > > > ..Ah! assim como o Anderson comentou, não
> > use String nos
> > parametros
> > > > > > > dos métodos que serão exportados na sua
> > dll.. sendo assim, basta
> > > > > > mudar
> > > > > > > o seguinte:
> > > > > > >
> > > > > > > Procedure GeraPDF( Servidor, Tipo: PChar );
> > stdcall;
> > > > > > >
> > > > > > >
> > > > > > > ..pronto, valeu!!
> > > > > > >
> > > > > > >
> > > > > > >
> > _______________________________________________________
> > > > > > > Abra sua conta no Yahoo! Mail: 1GB de
> > espaço, alertas de e-mail no
> > > > > > celular e anti-spam realmente eficaz.
> > > > > > > http://br.info.mail.yahoo.com/
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA
> > MENSAGEM >>>>>
> > > > >
> > > > >
> > > > >
> > > > > Links do Yahoo! Grupos
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA
> > MENSAGEM >>>>>
> > > > >
> > > > >
> > > > >
> > > > > Links do Yahoo! Grupos
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >--
> > > >Marcelo A. Souza
> > > >
> > > >
> > > >[As partes desta mensagem que não continham texto
> > foram removidas]
> > > >
> > >
> > >
> > _________________________________________________________________
> > > MSN Busca: fácil, rápido, direto ao ponto.
> > http://search.msn.com.br
> > >
> > >
> > >
> > > --
> > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA
> > MENSAGEM >>>>>
> > >
> > >
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
> > --
> > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA
> > MENSAGEM >>>>>
> >
> > http://br.groups.yahoo.com/group/delphi-br/messages
> >
> >
> >
> >
> >                   Yahoo! Grupos, um serviço oferecido
> > por:                    PUBLICIDADE
> > var lrec_target="_top";var lrec_URL=new
> >
> Array();lrec_URL[1]="
> http://br.ard.yahoo.com/SIG=12fct8dd1/M=396559.7942981.
> 9484409.2369893
> /D=brclubs/S=2137111264:HM/Y=BR/EXP=1148485069/A=3718281/R=0/
> id=flashurl/SIG=154dcqslu/*
> http://lt.dell.com/lt/lt.aspx?CID=13040&LID=34071
> 5&DGC=BA&DGSeg=DHS&DURL=
> http://www1.la.dell.com/content/products/category.as
> px/desktops?c%3dbr%26l%3dpt%26s%3ddhs";var
> >
> lrec_flashfile="
> http://br.i1.yimg.com/br.yimg.com/i/230506_y300x250_maio03_d
> hs_dim5150.swf?clickTAG=_javascript_:LRECopenWindow(1)";var
> >
> lrec_altURL="
> http://br.ard.yahoo.com/SIG=12fct8dd1/M=396559.7942981.9484409.
>
>
2369893/D=brclubs/S=2137111264:HM/Y=BR/EXP=1148485069/A=3718281/R=1/id=altim
> g/SIG=154dcqslu/*
> http://lt.dell.com/lt/lt.aspx?CID=13040&LID=340715&DGC=BA&D
> GSeg=DHS&DURL=
> http://www1.la.dell.com/content/products/category.aspx/desktop
> s?c%3dbr%26l%3dpt%26s%3ddhs";var
> >
> lrec_altimg="
> http://br.i1.yimg.com/br.yimg.com/i/230506_y300x250_maio03_dhs_
> dim5150.gif";var
> > lrec_width=300;var lrec_height=250;
> >
> >
> > ---------------------------------
> > 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 Termos do Serviço do Yahoo!.
> >
> >
> >
> > __________________________________________________
> > Faça ligações para outros computadores com o novo Yahoo! Messenger
> > http://br.beta.messenger.yahoo.com/
> >
> >
> > --
> > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> >
> >
> >
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> >
> >
>
>
>
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
>
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>


--
Marcelo A. Souza


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



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



Links do Yahoo! Grupos









--
<<<<< 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]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a