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