Einzelnen Beitrag anzeigen

Benutzerbild von Amnon82
Amnon82

Registriert seit: 5. Jan 2005
186 Beiträge
 
FreePascal / Lazarus
 
#1

Anleitung zum Einbinden von DEC in Delphi 2005 (getestet)

  Alt 28. Apr 2005, 09:42
Ich hab mitbekommen, das Viele hier Probleme mit der Installation von DEC in Delphi 2005 haben.
Da ich auch Delphi 2005 verwende, hab ich DEC für Delphi 2005 angepasst.

Ich bedank mich bei Hagen. Durch einen von seinen Beiträgen hab ich die Lösung gefunden.
Hier nochmal zum Nachlesen:


Zitat:
Weil du Delphi 6 oder 7 hast. Borland hat die benötigten Units einfach umbenannt von D3,D4,D5 zum D6,D7.

Unit DECReg.pas öffnen und dort in der Uses Klausel
"DsgnIntf" durch "DesignIntf, DesignEditors" ersetzen.

Unit DECUtil.pas in der initialization Sektion
InitTestIsOk := CRC32($29524828, GetTestVector, 32) = $9B497502;

Das wars, und DEC läuft auch in D6/D7.

Beide Änderungen sind nötig weil Borland Units umbenannt hat bzw. weil der integrierte Assembler geändert wurde.

Achso noch eines: die unit DECReg.pas MUSS unbedingt in ein DesignTime only Package eingebunden werden. Wird DECReg.pas als neue Komponente installiert so landet es meistens in das "Borland Benutzer Package", dies wäre ok.
Ansonsten bekommt man den allseits bekannten Fehler das Unit "Proxies.dcu" nicht neu kompiliert werden kann weil unit "Proxies.pas" nicht gefunden wurde. Auch dies ist eine Änderung die Bolrand zu verantworten hat.

Gruß Hagen

PS: die im WEB veröffentlichen DEC Sourcen wurden noch entwickelt als es kein Delphi 6 oder 7 gab.
Abgesehen davon sind also DEC's Sourcen absolut kompatibel programmiert wurden.
Ich hab ein Project erstellt sodass man DEC ganz einfach einbinden kann.

Da fast garnichts verändert wurde an der Source beschreibe ich Euch nun, wie Ihr mein Project nachbauen könnt. Zuerst müsst Ihr Hagens Dec downloaden. DEC @ luckie-online.de

Öffnet die DECReg.pas (z.B. mit dem Editor) und geht bis zu dieser Stelle:

Delphi-Quellcode:
interface

uses
  DECConst, DECUtil, Hash, Cipher, HCMngr, SysUtils, Classes, DsgnIntf, Cipher1, RFC2289
{$IFDEF Part_II}
{$ENDIF}
{$IFDEF Part_III}
{$ENDIF};
Ändert den Part folgendermaßen ab:

Delphi-Quellcode:
interface

uses
  DECConst, DECUtil, Hash, Cipher, HCMngr, SysUtils, Classes, DesignIntf, DesignEditors, Cipher1, RFC2289
{$IFDEF Part_II}
{$ENDIF}
{$IFDEF Part_III}
{$ENDIF};
Nun öffnen wir die DECUtil.pas. Geht bis zu diesen Part:

Delphi-Quellcode:
{this calculate a Checksum (CRC32) over the function CRC32 and the TestVector,
if InitTestIsOk = False any modification from Testvector or CRC32() detected, :-) }

  InitTestIsOk := CRC32(CRC32($29524828, PChar(@CRC32) + 41, 1076), GetTestVector, 32) = $848B5964;
finalization
  RemoveModuleUnloadProc(ModuleUnload);
  FStrFMTs.Free;
  FStrFMTs := nil;
end.
Ändert Ihn so ab:

Delphi-Quellcode:
{this calculate a Checksum (CRC32) over the function CRC32 and the TestVector,
if InitTestIsOk = False any modification from Testvector or CRC32() detected, :-) }

    InitTestIsOk := CRC32($29524828, GetTestVector, 32) = $9B497502;
  
finalization
  RemoveModuleUnloadProc(ModuleUnload);
  FStrFMTs.Free;
  FStrFMTs := nil;
end.
Natürlich müsst Ihr die Dateien dann auch speichern

Nun öffnen wir Delphi 2005. Wir erstellen ein Package (zu finden bei den Delphi Projects) und fügen dem die DECReg.pas hinzu. Danach speichern wir das Package unter einem Namen (z.B. DECD9).
Nun können wir auf installieren klicken und DEC wird ohne Probleme in Delphi 2005 eingebunden.

Ich hoffe das diese Anleitung Vielen hier weiterhilft.
  Mit Zitat antworten Zitat