GARANTIR DESCONTO

Fórum DLLs e componentes... como usar? #268516

14/02/2005

0

Ola!

gostaria de saber como usar um componente NMSMTP e ClientSocket em uma DLL que eu construi para comunicação... bem eu tentei...

type smtp = Tnmsmtp;

 procedure mail(<argumentos>); export;
   var cliente: smtp;
 begin
         (...)
 end;
 
  exports mail;

begin

end.


o codigo de minha dll seria +/- isso mas ele diz que a variavel cliente não foi inicializada e causa uma violação de acesso...

alguem pode me ajudar??? como usar esses componentes em DLLs???
muito obrigado!


Raimundo_farias

Raimundo_farias

Responder

Posts

14/02/2005

Raimundo_farias

lembrando.... esta DLL esta usando a classe NMSMTP

e na hora de chamar em meu codigo:

procedure mail(<argumentos>); external ´connSrv.dll´;

isso fica num formulario de meu programa...
compilo a dll com esse exe e da o erro que mencionei acima....


Responder

Gostei + 0

15/02/2005

Marcelo Saviski

vc está criando a variavel cliente?

cliente := ntp.Create(...);

cente.free;


ou senão, iforme o código da procedure mail para que possamos ajudar...


Responder

Gostei + 0

15/02/2005

Raimundo_farias

Oi cara,

bem eu ñ to com o fonte em mãos agora mas pelo que me lembro...

 USES (...), NMSMTP;

 type smtp = Tnmsmtp;

 procedure mail(const email:string; const nome: string; const    dest:string; const assun: string; const msg: string); export; 
 
var cliente: smtp;
begin
         try
              cliente.host := ´smtphost.com.br´;
              cliente.port := 25;
              cliente.userid := ´email@smtphost.com.br´;
              cliente.connect
              if cliente.connected then
               begin
                     //não to lembrado do resto dos parametros para colocar os dados
               end;         
         except
             if not cliente.connected then
                raise exception.create(´não foi possivel conectar! verifique sua conexao´);
         end;
end;

  exports mail;

begin

end.


essa procedure faz parte de ´connSrv.dll´

no meu projeto eu chamo essa procedure em um form de mensagens

procedure mail(<parametros>); external ´connSrv.dll´;

ai sempre que o form é criado apresenta um erro dizendo que a variavel não teria sido inicializada...

Bom, eu não fiz isso que vc falou... mas esses ´...´ ?? :shock: quais parametros são esses que vc colocou???

clientes = smtp.create(...) ??? quais parametros são esses??? ou nao precisa?

valeu cara!!! e ja abusando de novo! :lol: onde eu encontro algo sobre ServerSocket e ClientSocket ???

Raimundo Farias


Responder

Gostei + 0

16/02/2005

Marcelo Saviski

Tente ver se assim funciona:

  cliente := smtp.Create; //<<<<<<<<<ADICIONADO
  try
         try 
              cliente.host := ´smtphost.com.br´; 
              cliente.port := 25; 
              cliente.userid := ´email@smtphost.com.br´; 
              cliente.connect 
              if cliente.connected then 
               begin 
                     //não to lembrado do resto dos parametros para colocar os dados 
               end;          
         except 
             if not cliente.connected then 
                raise exception.create(´não foi possivel conectar! verifique sua conexao´); 
         end; 
  finally
    cliente.Free; //<<<<<<<ADICIONADO
  end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar