Cara eu fiz diferente e funcionou. Veja só:


procedure TfrmPrincipal.btnGerarClick(Sender: TObject);
var
     lServidor, lTipo: PChar ;
begin

     if self.rbProducao.Checked then
        lServidor := 'PRODUCAO'
     else
     if self.rbHomologacao.Checked then
        lServidor := 'HOMOLOGACAO'
     else
        lServidor := 'TESTES';

     if self.rbImportacao.Checked then
        lTipo := 'I'
     else
        lTipo := 'E' ;

     //GeraPDF( lServidor, PChar( self.edCliente.Text ), lTipo, PChar(
self.edDiretorio.Text ), Pchar( self.edDataIni.Text ), PChar(
self.edDataFim.Text ) ) ;

No caso criei duas variáveis do tipo Pchar para alguns parâmetros que eu
tinha que tratar e para os parâmetros que eu poderia passar direto pegando o
valor de TEdit eu usei apenas PChar(  Edit.Text ). Pelo que eu vi, dessa
forma já converte para PChar.
Marcelo.



Em 24/05/06, Campus <[EMAIL PROTECTED]> escreveu:
>
> 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 >>>>>
>
>
>
> 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 >>>>>

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