Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-11-2006
Avatar de acertij022
acertij022 acertij022 is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina-Bs. As.
Posts: 233
Poder: 22
acertij022 Va por buen camino
problema con creacion de DLL

Hola delphiano hace una semana pedi ayuda para encriptar string en triple-DES y me recomendaron el componente DCPcrypt http://www.cityinthesky.co.uk/cryptography.html
Bueno todo funciona perfecto pero ahora necesito encapsularlo en una DLL para poder usarlo en otros lenguajes. Al intentar levantar la DLL desde Delphi me sale un error (Invalid pointer operation).
El codigo de la DLL es el siguiente:
Código Delphi [-]
library des;

uses
  SysUtils,
  Classes,
  DCPcrypt2, DCPblockciphers, DCPdes, DCPsha1;

{$R *.res}
        function TripleDes(dato,contrasenia:string;accion:boolean):string; stdcall; overload;
        var
        Cipher: TDCP_3des;
        begin
        Cipher:= TDCP_3des.Create(nil);//(Self);
        Cipher.InitStr(contrasenia,TDCP_sha1);         // initialize the cipher with a hash of the passphrase
        if accion=true then Result:= Cipher.EncryptString(dato)
        else Result:= Cipher.DecryptString(dato);
        Cipher.Burn;
        Cipher.Free;
        end;

        Exports TripleDes(dato,contrasenia:string;accion:boolean);

        begin
        end.
y el codigo en delphi para levantar la DLL es:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    GroupBox1: TGroupBox;
    Memo1: TMemo;
    GroupBox2: TGroupBox;
    Memo2: TMemo;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TripleDes(dato,contrasenia:string;accion:boolean):string; stdcall; external 'DES.DLL';

procedure TForm1.Button1Click(Sender: TObject);
begin
memo2.Text := TripleDes(memo1.Text,edit1.text,true);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
memo2.Text := TripleDes(memo1.Text,edit1.text,false);

end;

end.
supongo que el error es que uso como parametro NIL en vez de SELF al crear el componente pero si colo este ultimo no me compila([Error] des.dpr(13): Undeclared identifier: 'Self').

Espero que alguien me pueda ayudar desde ya muchas gracias

Última edición por acertij022 fecha: 20-11-2006 a las 14:22:23.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
creación de un XML jmlifi Providers 2 10-01-2006 15:22:27
creacion armando OOP 9 28-10-2005 20:29:37
Problema Creacion-Cancelacion Registros Maury Manosalva OOP 3 20-09-2005 23:18:32
Problema con la creación de Indices apicito Firebird e Interbase 3 20-05-2005 07:22:04
problema con la creacion de informes Mayorlin .NET 2 22-07-2004 19:32:24


La franja horaria es GMT +2. Ahora son las 13:45:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi