Wilson, foi mal ter enviado o “eng” no final, é que digitei rápido o e-mail
e nem conferi essa parte, mas no código esta correto, senão dava erro na
compilação.

 

Mas acabei de achar o erro, para quem interessar depois que você declara a
função que está na DLL, no meu caso tenho que colocar seguinte sintaxe no
final :

 

function get_receipt (login,senha, msgid :string; var
  telefone,conteudo,dtpedido,dtentrega,status,descricao:string): integer;
  stdcall; external 'Teste.dll' name 'get_receipt' ;

 

Colocar name 'nome da função', ainda não sei o porque, mas agora esta
funcionando tudo 100%

 

Att.

  _____  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Wilson Valdevite
Enviada em: segunda-feira, 22 de agosto de 2005 09:59
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] DLL

 

tente mudar o eng; para end; e veja se resolve...
  ----- Original Message ----- 
  From: Diogo 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Monday, August 22, 2005 9:44 AM
  Subject: [delphi-br] DLL


  Olá

  Alguém sabe o que pode estar dando de errado nessa chamada de DLL?



  implementation



  function get_receipt (login,senha, msgid :string; var
  telefone,conteudo,dtpedido,dtentrega,status,descricao:string): integer;
  stdcall; external 'Teste.dll';



  {$R *.dfm}



  procedure TForm1.Button2Click(Sender: TObject);

  var I : integer;

  begin

    I := get_receipt ('teste','senha', '1' :string; var
  telefone,conteudo,dtpedido,dtentrega,status,descricao:string);

  eng;



  Se eu faço da maneira acima da sempre access violation na 3 vez que chamo
a
  função via DLL. Mas o mais estranho é que se eu trago a função que está na
  DLL para dentro do código-fonte e funciona 100%!!!!

  Na minha dll o código está correto...



  library DLL;



  { Important note about DLL memory management: ShareMem must be the

    first unit in your library's USES clause AND your project's (select

    Project-View Source) USES clause if your DLL exports any procedures or

    functions that pass strings as parameters or function results. This

    applies to all strings passed to and from your DLL--even those that

    are nested in records and classes. ShareMem is the interface unit to

    the BORLNDMM.DLL shared memory manager, which must be deployed along

    with your DLL. To avoid using BORLNDMM.DLL, pass string information

    using PChar or ShortString parameters. }



  uses

    SysUtils,

    ECXMLParser, IEHTTP3, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient,

    IdHTTP, Classes;





  {$R *.res}



  function get_receipt(login, password, msgid: string; var bnumber, text,
  sentdate, deliverydate, msgstatus, description: string): integer;stdcall;



  ..





  end;

  end.



  Alguém sabe porque esta dando access violation se eu chamo via dll? Porque
  com a função dentro do aplicativo funciona sem problemas.

  Abraços









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



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

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por: 
          


----------------------------------------------------------------------------
--
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo!. 




----------------------------------------------------------------------------
--


  No virus found in this incoming message.
  Checked by AVG Anti-Virus.
  Version: 7.0.338 / Virus Database: 267.10.13/78 - Release Date: 19/08/2005


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



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

Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED] ou [EMAIL PROTECTED]






Yahoo! Grupos, um serviço oferecido por:


 
<http://br.rd.yahoo.com/SIG=12f3ocqui/M=365837.7000707.7924794.2369893/D=brc
lubs/S=2137111264:HM/Y=BR/EXP=1124722797/A=2932553/R=2/id=noscript/SIG=10tif
t5qr/*http:/br.movies.yahoo.com/> 

  <http://br.i1.yimg.com/br.yimg.com/i/br/ads5/cinema_n_suspense.gif> 

 

  _____  

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 <http://br.yahoo.com/info/utos.html>  Yahoo!. 



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



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

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a