[delphi-br] Criando dll que contem Indy

2007-09-05 Por tôpico Jonatã Castelo Branco
Galera estou tentando criar uma dll que contem dois componentes Indy: o TIdFTP 
e o TidHTTP. Mas tá dando erro de Violação de Acesso.

Eu já transformei a dll em programa e este erro não apareceu. Alguém já viu 
isso ou sabe o motivo do erro?

Estou apenas querendo enviar uma mensagem (que acaba sendo um arquivo) via FTP 
e outra por POST do http.

Jonatã.


  Flickr agora em português. Você clica, todo mundo vê.
http://www.flickr.com.br/


Re: RES: [delphi-br] Criando DLL

2006-05-25 Por tôpico Valfrid-Ly Silva Couto



Em Pascal realmente não, mas dá uma olhada na documentação do Delphi pois eles mudaram isso, afinal, uma string pura não poderia passar de 255 chars pois é o máximo que se consegue marcar na posição 0 da string.

Não sei se você já tentou, mas no Delphi você passa desse ponto e não pode mais acessar a posição 0 da string para determinar o tamanho, como se podia fazer no Turbo Pascal!

Campus [EMAIL PROTECTED] escreveu: Valfrid, acho que tu fez uma pequena confusão.

Se não estou enganado em C as strings são Null terminated, mas Pascal não.

- Original Message - 
From: Valfrid-Ly Silva Couto 
To: 
Sent: Wednesday, May 24, 2006 3:20 PM
Subject: Re: RES: [delphi-br] Criando DLL


Isso só funciona porque no Delphi, as Strings também tem como terminador o
caracter #0



- Original Message - 
From: Rubem Nascimento da Rocha
To:
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
 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 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
   To:
   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
   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
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 



Links do Yahoo! Grupos










Valfrid-Ly Silva Couto
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
ICQ 15114646

-
 Yahoo! doce lar. Faça do Yahoo! sua homepage.

[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

Re: RES: [delphi-br] Criando DLL

2006-05-25 Por tôpico Campus



Não encontrei na documentação do Delphi referência a string terminada com
nulo. Se tu puder me indicar fico grato.

Só encontrei que as LongString, que possuem no mínimo 4 bytes, são um
ponteiro para a estrutura real da string. Nesse caso tu não tem essa
limitação de comprimento do primeiro byte.

Minha curiosidade é em função de certa vez que estava lendo sobre criação de
UDFs para Interbase, se fazia nescessário a passagem de parâmetros com
arrays de char, a única forma de construção de strings terminadas em nulo
possível em Delphi, em consequencia do Pascal.


- Original Message - 
From: Valfrid-Ly Silva Couto [EMAIL PROTECTED]
To: delphi-br@yahoogrupos.com.br
Sent: Thursday, May 25, 2006 9:09 AM
Subject: Re: RES: [delphi-br] Criando DLL


Em Pascal realmente não, mas dá uma olhada na documentação do Delphi pois
eles mudaram isso, afinal, uma string pura não poderia passar de 255 chars
pois é o máximo que se consegue marcar na posição 0 da string.

Não sei se você já tentou, mas no Delphi você passa desse ponto e não pode
mais acessar a posição 0 da string para determinar o tamanho, como se podia
fazer no Turbo Pascal!

Campus [EMAIL PROTECTED] escreveu: Valfrid, acho que tu fez uma pequena
confusão.

Se não estou enganado em C as strings são Null terminated, mas Pascal não.

- Original Message - 
From: Valfrid-Ly Silva Couto
To:
Sent: Wednesday, May 24, 2006 3:20 PM
Subject: Re: RES: [delphi-br] Criando DLL


Isso só funciona porque no Delphi, as Strings também tem como terminador o
caracter #0



- Original Message - 
From: Rubem Nascimento da Rocha
To:
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
 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 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
   To:
   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
   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
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

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Campus



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 

* 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

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!.











Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Marcelo Alves



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]







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

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!.












Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Rubem Nascimento da Rocha



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 

* 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

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!.












Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Campus



Sim, como qquer chamada para API do Windows.

- Original Message - 
From: Marcelo Alves [EMAIL PROTECTED]
To: delphi-br@yahoogrupos.com.br
Sent: Wednesday, May 24, 2006 9:21 AM
Subject: Re: RES: [delphi-br] Criando DLL


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]



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

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!.












Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Campus



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 

* 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

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Jonatã Castelo Branco



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

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Marcelo Alves



Legal, quer dizer então que eu utilizando o PChar, minha DLL se torna
disponível para todos os tipos de linguagens, correto? Só mais uma dúvida, o
PChar eu devo utilizar em todas as units do meu projeto DLL ou somente nas
funções que serão exportadas

Marcelo.


Em 24/05/06, Jonatã Castelo Branco [EMAIL PROTECTED] escreveu:

 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

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Campus



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

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Jonatã Castelo Branco



Fica a teu criterio. Testa e ve o que eh melhor.


--- Marcelo Alves [EMAIL PROTECTED] escreveu:


-
Legal, quer dizer então que eu utilizando o PChar,
minha DLL se torna
disponível para todos os tipos de linguagens, correto?
Só mais uma dúvida, o
PChar eu devo utilizar em todas as units do meu
projeto DLL ou somente nas
funções que serão exportadas

Marcelo.


Em 24/05/06, Jonatã Castelo Branco
[EMAIL PROTECTED] escreveu:

 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

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Marcelo Alves



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

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Campus



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

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Marcelo Alves



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

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Valfrid-Ly Silva Couto



Ah, usando bem o conceito de ponteiros, de antes de existir a função PChar, pode-se usar também:

Var pDescricao: PChar
 cDescricao: String

cDescricao := 'Rubem Nascimento da Rocha'
pDescricao := @cDescricao[1]

Isso só funciona porque no Delphi, as Strings também tem como terminador o caracter #0

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 
To: 
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 
 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 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 
   To: 
   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
   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
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 


 
Links do Yahoo! Grupos




 





Valfrid-Ly Silva

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Campus



Funcionar funciona, mas vc está passando o endereço de uma literal, se
depois chamada da função essa área de memória tiver sido alocada por outra
coisa, o windows vai gerar um GPF.

Sem falar que lServidor e lTipo são variáveis locais, ao término do
procedimento btnGerarClick, ela será destruída. Se tu acessar o conteúdo
dela dentro da Dll depois disso, tu vai ter um Access violation ou um GPF, o
segundo mais provavelmente.

Não esqueça que um Pchar é um ponteiro, não uma cópia de uma variavel.



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


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

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Valfrid-Ly Silva Couto



Toda variável é armazenada em algum lugar na memória, da forma que você fez, o Delphi simplesmente colocou o espaço na memória e depois atribuiu um endereço, uma vez que o tamanho e etc já são conhecidos.

Se você vai trabalhar com variáveis que você não sabe o tamanho, a coisa é diferente!!

Marcelo Alves [EMAIL PROTECTED] escreveu: 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 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 
 To: 
 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 escreveu:

  Sem dúvida, em Delphi também, com StrPCopy.
 
 
  - Original Message -
  From: Jonatã Castelo Branco 
  To: 
  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 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
   
   To: 
   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 
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 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
   
  To: 
  Sent: Tuesday, May 23, 2006 6:08 PM
  Subject: Re: RES: [delphi-br] Criando DLL

Re: RES: [delphi-br] Criando DLL

2006-05-24 Por tôpico Campus



Valfrid, acho que tu fez uma pequena confusão.

Se não estou enganado em C as strings são Null terminated, mas Pascal não.

- Original Message - 
From: Valfrid-Ly Silva Couto [EMAIL PROTECTED]
To: delphi-br@yahoogrupos.com.br
Sent: Wednesday, May 24, 2006 3:20 PM
Subject: Re: RES: [delphi-br] Criando DLL


Isso só funciona porque no Delphi, as Strings também tem como terminador o
caracter #0



- Original Message - 
From: Rubem Nascimento da Rocha
To:
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
 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 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
   To:
   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
   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
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 



Links do Yahoo! Grupos










Valfrid-Ly Silva Couto
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
ICQ 15114646

-
 Yahoo! doce lar. Faça do Yahoo! sua homepage.

[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

Para visitar o site do seu

Re: RES: [delphi-br] Criando DLL

2006-05-23 Por tôpico marcelloassouza



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 

* 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

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!.











Re: RES: [delphi-br] Criando DLL

2006-05-23 Por tôpico Filipe Belchior



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 

* 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

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!.












RES: [delphi-br] Criando DLL

2006-05-23 Por tôpico Marcelo Alves



 Felipe,

Na minha DLL eu tenho uma unit uPrincipal da Classe Tform e uma outra
uRelatorio que é um Report do tipo TQuickRep.

Tenho a procedure principal que é a exportada para ser usada por um outro
programa. Essa procedure chama uma outra procedure na unit uPrincipal que é
onde estão meus componentes ADO e onde estava dando o erro inicial. Com as
suas dicas resolvi o problema na uPrincipal. Bom, em um determinado momento
eu tento renomear um caption no Report conforme a linha abaixo:

Rep.lblPeriodo.Caption := 'Período...: ' + DataIni + ' a ' + DataFin ;

Rep é o nome que dei o meu Report. Bom é nesse momento que recebo a mensagem
de access violation. Acredito que por ser DLL tenha que instanciar algo,
coisa que não preciso fazer em um projeto normal (exe).

-- 
Marcelo A. Souza


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!


[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

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!.












[delphi-br] Criando DLL

2006-05-22 Por tôpico marcelloassouza



Pessoal,
 
Preciso criar uma DLL que se conecta a uma base SQL Server e gere um 
Relatório em PDF.
 
Eu sei como fazer tudo isso, esse não é o problema, o que está me 
faltando mesmo é um pouco de conhecimento referente a parte de DLL's 
mesmo.
 
Seguinte:
 
Criei o meu projeto DLL conforme abaixo:
 
library minhadll;
 
uses
 SysUtils,
 Classes,
 uPrincipal in 'uPrincipal.pas' {frmPrincipal},
 uRelatorio in 'uRelatorio.pas' {Rep: TQuickRep};
 
{$R *.res}
 
Procedure GeraPDF( Servidor, Tipo: String ); stdcall; begin
 frmPrincipal.GeraRelatorio( Servidor, Tipo ); end; 
 
exports GeraPDF;
 
end.
 
 
Como vocês podem ver tenho duas Units no meu projeto. Uma é somente 
um form para eu colocar os componentes que necessito, no Caso o 
ADOConnection, ADOQuery e um outro que uso para exportar para PDF. A 
outra unit é um Report.
 
Ao debugar bem na linha abaixo:
 
frmPrincipal.GeraRelatorio( Servidor, Cliente, Tipo, Dir, DataIni, 
DataFim );

recebo um erro de access violation. Como as minhas ações estão no 
form frmPrincipal e o erro acontece justamente ao chamar algo que 
está nele, percebi que estava faltando eu criar o form. Aí tentei de 
todos os jeitos e não consegui. O que está faltando eu declarar para 
que eu possa utilizar o form frmPrincipal.
 
Para criar o frmPrincipal tentei um dos dois códigos abaixo:
 
Forma 1:
 
Application.CreateForm( TfrmPrincipal, frmPrincipal ) ;
 
Forma 2: 
 
 If frmPrincipal = Nil Then frmPrincipal := TfrmPrincipal.Create( 
Self ) ;
 
 
Poderiam me ajudar

 
Att,
 
Marcelo A. Souza











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

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!.











[delphi-br] Criando DLL

2006-05-22 Por tôpico Marcelo Alves de Souza



Pessoal,
 
Preciso criar uma DLL que se conecta a uma base SQL Server e gere um
Relatório em PDF.
 
Eu sei como fazer tudo isso, esse não é o problema, o que está me faltando
mesmo é um pouco de conhecimento referente a parte de DLL's mesmo.
 
Seguinte:
 
Criei o meu projeto DLL conforme abaixo:
 
library minhadll;
 
uses
 SysUtils,
 Classes,
 uPrincipal in 'uPrincipal.pas' {frmPrincipal},
 uRelatorio in 'uRelatorio.pas' {Rep: TQuickRep};
 
{$R *.res}
 
Procedure GeraPDF( Servidor, Tipo: String ); stdcall;
begin
 frmPrincipal.GeraRelatorio( Servidor, Tipo );
end; 
 
exports GeraPDF;
 
end.
 
 
Como vocês podem ver tenho duas Units no meu projeto. Uma é somente um form
para eu colocar os componentes que necessito, no Caso o ADOConnection,
ADOQuery e um outro que uso para exportar para PDF. A outra unit é um
Report.
 
Ao debugar bem na linha abaixo:
 
frmPrincipal.GeraRelatorio( Servidor, Cliente, Tipo, Dir, DataIni, DataFim
);

recebo um erro de access violation. Como as minhas ações estão no form
frmPrincipal e o erro acontece justamente ao chamar algo que está nele,
percebi que estava faltando eu criar o form. Aí tentei de todos os jeitos e
não consegui. O que está faltando eu declarar para que eu possa utilizar o
form frmPrincipal.
 
Para criar o frmPrincipal tentei um dos dois códigos abaixo:
 
Forma 1:
 
Application.CreateForm( TfrmPrincipal, frmPrincipal ) ;
 
Forma 2: 
 
 If frmPrincipal = Nil Then frmPrincipal := TfrmPrincipal.Create( Self )
;
 
 
Poderiam me ajudar

 
Att,
 
Marcelo A. Souza







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

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!.











RES: [delphi-br] Criando DLL

2006-05-22 Por tôpico Marcelo Alves de Souza



Será que ninguém pode me ajudar???

Marcelo. 

-Mensagem original-
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Marcelo Alves de Souza
Enviada em: segunda-feira, 22 de maio de 2006 12:26
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Criando DLL

Pessoal,
 
Preciso criar uma DLL que se conecta a uma base SQL Server e gere um
Relatório em PDF.
 
Eu sei como fazer tudo isso, esse não é o problema, o que está me faltando
mesmo é um pouco de conhecimento referente a parte de DLL's mesmo.
 
Seguinte:
 
Criei o meu projeto DLL conforme abaixo:
 
library minhadll;
 
uses
 SysUtils,
 Classes,
 uPrincipal in 'uPrincipal.pas' {frmPrincipal},
 uRelatorio in 'uRelatorio.pas' {Rep: TQuickRep};
 
{$R *.res}
 
Procedure GeraPDF( Servidor, Tipo: String ); stdcall; begin
 frmPrincipal.GeraRelatorio( Servidor, Tipo ); end; 
 
exports GeraPDF;
 
end.
 
 
Como vocês podem ver tenho duas Units no meu projeto. Uma é somente um form
para eu colocar os componentes que necessito, no Caso o ADOConnection,
ADOQuery e um outro que uso para exportar para PDF. A outra unit é um
Report.
 
Ao debugar bem na linha abaixo:
 
frmPrincipal.GeraRelatorio( Servidor, Cliente, Tipo, Dir, DataIni, DataFim
);

recebo um erro de access violation. Como as minhas ações estão no form
frmPrincipal e o erro acontece justamente ao chamar algo que está nele,
percebi que estava faltando eu criar o form. Aí tentei de todos os jeitos e
não consegui. O que está faltando eu declarar para que eu possa utilizar o
form frmPrincipal.
 
Para criar o frmPrincipal tentei um dos dois códigos abaixo:
 
Forma 1:
 
Application.CreateForm( TfrmPrincipal, frmPrincipal ) ;
 
Forma 2: 
 
 If frmPrincipal = Nil Then frmPrincipal := TfrmPrincipal.Create( Self )
;
 
 
Poderiam me ajudar

 
Att,
 
Marcelo A. Souza



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

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!.












Re: [delphi-br] Criando DLL

2006-05-22 Por tôpico Desenvolvimento \(Anderson\)



2 coisinhas:
1º não trabalhe com Strings... use PCHAR
2º vc tem q criar o form antes de chamar a função APPLICATION.CREATEFORM.. e deixar o comando ACTION := CAFREE após terminar o processo.


 - Original Message - 
 From: Marcelo Alves de Souza 
 To: delphi-br@yahoogrupos.com.br 
 Sent: Monday, May 22, 2006 4:53 PM
 Subject: RES: [delphi-br] Criando DLL


 Será que ninguém pode me ajudar???

 Marcelo. 

 -Mensagem original-
 De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
 nome de Marcelo Alves de Souza
 Enviada em: segunda-feira, 22 de maio de 2006 12:26
 Para: delphi-br@yahoogrupos.com.br
 Assunto: [delphi-br] Criando DLL

 Pessoal,

 Preciso criar uma DLL que se conecta a uma base SQL Server e gere um
 Relatório em PDF.

 Eu sei como fazer tudo isso, esse não é o problema, o que está me faltando
 mesmo é um pouco de conhecimento referente a parte de DLL's mesmo.

 Seguinte:

 Criei o meu projeto DLL conforme abaixo:

 library minhadll;

 uses
 SysUtils,
 Classes,
 uPrincipal in 'uPrincipal.pas' {frmPrincipal},
 uRelatorio in 'uRelatorio.pas' {Rep: TQuickRep};

 {$R *.res}

 Procedure GeraPDF( Servidor, Tipo: String ); stdcall; begin
 frmPrincipal.GeraRelatorio( Servidor, Tipo ); end; 

 exports GeraPDF;

 end.


 Como vocês podem ver tenho duas Units no meu projeto. Uma é somente um form
 para eu colocar os componentes que necessito, no Caso o ADOConnection,
 ADOQuery e um outro que uso para exportar para PDF. A outra unit é um
 Report.

 Ao debugar bem na linha abaixo:

 frmPrincipal.GeraRelatorio( Servidor, Cliente, Tipo, Dir, DataIni, DataFim
 );

 recebo um erro de access violation. Como as minhas ações estão no form
 frmPrincipal e o erro acontece justamente ao chamar algo que está nele,
 percebi que estava faltando eu criar o form. Aí tentei de todos os jeitos e
 não consegui. O que está faltando eu declarar para que eu possa utilizar o
 form frmPrincipal.

 Para criar o frmPrincipal tentei um dos dois códigos abaixo:

 Forma 1:

 Application.CreateForm( TfrmPrincipal, frmPrincipal ) ;

 Forma 2: 

 If frmPrincipal = Nil Then frmPrincipal := TfrmPrincipal.Create( Self )
 ;


 Poderiam me ajudar


 Att,

 Marcelo A. Souza



 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 



 Links do Yahoo! Grupos











 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 





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


--
 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!. 



 __ Informação do NOD32 IMON 1.1553 (20060522) __

 Esta mensagem foi verificada pelo NOD32 sistema antivírus
 http://www.eset.com.br



[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

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!.












RES: [delphi-br] Criando DLL

2006-05-22 Por tôpico Filipe Belchior



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

* 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

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!.











RES: [delphi-br] Criando DLL

2006-05-22 Por tôpico Filipe Belchior



marcelo,

onde vc escreveu essas duas formas?

na 1a, se vc escreveu no dpr, então faltou a declaração de Forms em 
uses.

na 2a, depende onde vc escreveu.


FILIPE BELCHIOR
Tecnólogo de Informática
Multibrands Consultoria em Tecnologia


  
___ 
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 

* 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

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!.











Re: RES: [delphi-br] Criando DLL

2006-05-22 Por tôpico Fernando - Hotforms
, 22 de maio de 2006 12:26
 Para: delphi-br@yahoogrupos.com.br
 Assunto: [delphi-br] Criando DLL

 Pessoal,

 Preciso criar uma DLL que se conecta a uma base SQL Server e gere um
 Relatório em PDF.

 Eu sei como fazer tudo isso, esse não é o problema, o que está me faltando
 mesmo é um pouco de conhecimento referente a parte de DLL's mesmo.

 Seguinte:

 Criei o meu projeto DLL conforme abaixo:

 library minhadll;

 uses
 SysUtils,
 Classes,
 uPrincipal in 'uPrincipal.pas' {frmPrincipal},
 uRelatorio in 'uRelatorio.pas' {Rep: TQuickRep};

 {$R *.res}

 Procedure GeraPDF( Servidor, Tipo: String ); stdcall; begin
 frmPrincipal.GeraRelatorio( Servidor, Tipo ); end;

 exports GeraPDF;

 end.


 Como vocês podem ver tenho duas Units no meu projeto. Uma é somente um 
 form
 para eu colocar os componentes que necessito, no Caso o ADOConnection,
 ADOQuery e um outro que uso para exportar para PDF. A outra unit é um
 Report.

 Ao debugar bem na linha abaixo:

 frmPrincipal.GeraRelatorio( Servidor, Cliente, Tipo, Dir, DataIni, DataFim
 );

 recebo um erro de access violation. Como as minhas ações estão no form
 frmPrincipal e o erro acontece justamente ao chamar algo que está nele,
 percebi que estava faltando eu criar o form. Aí tentei de todos os 
 jeitos e
 não consegui. O que está faltando eu declarar para que eu possa utilizar o
 form frmPrincipal.

 Para criar o frmPrincipal tentei um dos dois códigos abaixo:

 Forma 1:

 Application.CreateForm( TfrmPrincipal, frmPrincipal ) ;

 Forma 2:

 If frmPrincipal = Nil Then frmPrincipal := TfrmPrincipal.Create( 
 Self )
 ;


 Poderiam me ajudar


 Att,

 Marcelo A. Souza



 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 



 Links do Yahoo! Grupos











 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 





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


 
 *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]
 mailto:[EMAIL PROTECTED]
 
 * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
 Serviço do Yahoo! http://br.yahoo.com/info/utos.html.



-- 
*Fernando dos Santos Sousa*
*Hotforms Hosting  Webdesign*
Telefone* (12) 3011-0660 | *Celular* (12) 9147-6740*
Email [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED]
WWW*http://www.hotforms.com.br*









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

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!.