Fórum Erro ao rodar DLL com Form e Memo #273371
21/03/2005
0
Estou fazendo um editor bem simples, no Delphi 7, que será invocado por um programa escrito em Cobol. Para isso, criei uma DLL para tal função. O problema é que nos testes que estou fazendo, no próprio Delphi, ao chamar o Form que contém o editor aparece o seguinte erro:
Access violation at address 0036CD6E in module ´minhadll.dll´. Read of address 000002F8.
Abaixo inseri o trecho da função que existe dentro da dll.
function capxedit(s: String): String; stdcall; export;
var
TXT: TextFile;
RDR: String;
begin
AssignFile(TXT, s);
Reset(TXT);
FrmXEDITOR.MemoXEDITOR.Clear;
FrmXEDITOR.Show;
while not eof(TXT) do
begin
ReadLN(TXT, RDR);
FrmXEDITOR.MemoXEDITOR.Lines.Add(RDR);
end;
CloseFile(TXT);
end;
Exports
capxedit;
O erro dá no ponto da instrução:
FrmXEDITOR.MemoXEDITOR.Clear;
Declarei na Unit as cláusulas ShareMem, SysUtils e Classes, além da unit que está o form. Será que falta alguma cláusula na Unit para eu declarar?
Obrigado pelas dicas! :-)
Jorgeolimpia
Curtir tópico
+ 0Posts
21/03/2005
Biohazard
type
tyString = string[255];
e na sua função declare assim:
function Exemplo(S: tyString) : tyString;
qualquer dúvida mande-me um email
Gostei + 0
21/03/2005
Kapak
Gostei + 0
21/03/2005
Jorgeolimpia
A questão da string é que ela existe ali só para capturar o txt que o programa vai enviar, ou seja, lá no Cobol vou executar o comando
CALL$ minhadll.dll ´capxedit(C:\teste\relatorio.txt)´
O caminho que está dentro do capxedit é o que vai para a string, aí faço aquela leitura básica do arquivo texto. Acredito que seja alguma rotina do form pois se troco por um ShowMessage() por exemplo, as linhas são mostradas uma a uma.
Obrigado pela dica!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)