Duas coisas:

1) Troque o tipo do parâmetro Texto de string para ShortString ou WideString e 
recompile a DLL;

2) Informe-se sobre as regras para o uso de parâmetros literais(string) em 
funções exportadas de DLLs escritas em Delphi, pois vc não atentou para alguns 
detalhes a respeito disto!

Sds.

________________________________

To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Tue, 1 Jul 2008 16:39:27 -0300
Subject: [delphi-br] dll - access violation



boa tarde galera

estou tentando criar uma dll pra criptografar dados
mas quando tento compilar o projeto q chama essa dll da um erro de acces
violation
ja coloquei a dll na pasta do projeto e mesmo assim nao fuinciona.

o codigo da dll:

function ValorAsc(Letra: String): Byte;
begin
if Length(letra)> 0 then ValorAsc := Ord(Letra[1]) else ValorAsc := 0;
end;

function Cripto(Texto: String): String; export; stdcall;
var
Cont, Cod: Integer;
Retorna: String;
begin
for Cont := 1 to Length(Texto) do begin
Cod := ValorAsc(Copy(Texto, Cont, 1));
Retorna := Retorna + Chr(Cod + 57(*valor a ser adicionado - pode ser
modificado*));
end;
Cripto := Retorna;
end;

e o codigo q chama a dll

function cripto(texto :string):string;external 'cript.dll';

procedure TfrmNovo.BitBtn1Click(Sender: TObject);
var
nome: string;
Arquivo: TextFile;
begin
nome := 'C:\finalcard\data\cadpers.prs';

AssignFile(Arquivo, nome);

if FileExists(nome) then
Append(arquivo) { se existir, apenas adiciona linhas }
else
ReWrite(arquivo); { cria um novo se não existir }
try
WriteLn(arquivo, cripto(edit1.Text));
WriteLn(arquivo, formatdatetime('dd-mm-yyyy',now));
WriteLn(arquivo, '-------');
finally
CloseFile(arquivo)
end;

alguem sabe oq pode ser?

--
Felipe Govoni
---------------------
Programador
Fone 8472-8718

_________________________________________________________________
Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver 
offline. Conheça  o MSN Mobile!
http://mobile.live.com/signup/signup2.aspx?lc=pt-br

Responder a