AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi sequence of byte -> komischer Datentyp
Thema durchsuchen
Ansicht
Themen-Optionen

sequence of byte -> komischer Datentyp

Ein Thema von BUG · begonnen am 21. Jun 2008 · letzter Beitrag vom 21. Jun 2008
 
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#1

sequence of byte -> komischer Datentyp

  Alt 21. Jun 2008, 19:55
Moin moin,

ich versuche die MD5 Proceduren aus der Microsoft Cryptdll.dll zu benutzen,
leider tritt dabei beim Ausführen folgendes Codes eine AccessViolation bzw. Priviligierte Instruktion auf.

Ich nehme an das mit den Aufrufen der Funktionen etwas schief läuft ... die Aufrufkonventionen müsste aber stimmen, ist ja aus der Windows API

Delphi-Quellcode:
// ...

uses classes;

// Windows Cript API imports

type MD5_CTX = packed record
  i: packed array[0..1] of longint; // ULONG[2]
  buf: packed array[0..3] of longint; // ULONG[4]
  _in: packed array[0..63] of byte; // unsigned char[64]
  digest: packed array[0..15] of byte; // unsigned char[16]
end;

procedure MD5Init(var MD5_CTX); stdcall; external 'Cryptdll.dllname 'MD5Init';
procedure MD5Update(var MD5_CTX; const input; inputLength: longint); stdcall; external 'Cryptdll.dllname 'MD5Init';
procedure MD5Final(var MD5_CTX); stdcall; external 'Cryptdll.dllname 'MD5Init';

function StreamToMD5String(x: TStream): string; // suboptimaler Funktionsname

implementation

function StreamToMD5String(x: TStream): string;
var context: MD5_CTX;
    buffer: packed array[0..511] of byte;
    length: integer;
begin
     MD5Init(context);
     x.Position := 0;
     repeat
           length := x.Read(buffer, 512);
           MD5Update(context, buffer, length);
     until length <= 0;
     MD5Final(context);
end;

// ...
Problematisch bei der Übersetzung/Einbindung ist folgendes:
Code:
 procedure MD5Update(
  var context: MD5_CTX,
  input: sequence of BYTE,
  inputLen: integer)
[Quelle]

Was ist "sequence of BYTE"?

Pointer hab ich schon probiert (s.o.)...

Ich freue mich über sachdienliche Hinweise


MfG,
Bug
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz