Ich habe ein Problem und hoffe Ihr könnt mir helfen:
Für ein VisualBasic 6.0 Projekt benötige ich eine Berechnung einer SHA1 Checksumme.
Da PB hierfür ein Funktion bereitstelt

und diese dann unter VB 6.0 aufrufen.
Das Gesamtkonstrukt kompiliert fehlerfrei aber unter VB 6.0 sürtzt das Programm dann ab mit einem Speicherfehler.
Der Fehler besagt:
Ich poste hier mal den Code des Projektes:Die Anweisung in "0x7c809e32" verweist auf Speicher in "0x01ca8000". Der Vorgang "read" kann nicht auf dem Speicher durchgeführt werden.
In PureBasic 4.51:
Datei sha1_dll.bas:
Code: Alles auswählen
Global ReturnString.s
ProcedureDLL.s CalcSHA1 (InputString.s)
ReturnString = SHA1Fingerprint(@InputString,StringByteLength(InputString))
ProcedureReturn ReturnString
EndProcedure
In VisualBasic 6.0:
In der Form1 sind noch ein Texteingabefeld , ein CommandButton und ein Label definiert
Bei Klick auf den Buttun soll der text im Eingabefeld von der sha1.dll übernommen und dessen SHA1 Fingerprint berechnet werden.
Das Ergebins ist ein String, welcher dann als caption für das Label verwendet werden soll.
In Form1:
Code: Alles auswählen
Private Sub Command1_Click()
Dim ergebnis As String
ergebnis = CalcSHA1(Text1.text)
Label1.Caption = ergebnis
End Sub
In Modul SHA1.bas:
Code: Alles auswählen
Public Declare Function CalcSHA1 Lib "H:\programming\VB6\calc_sha1_summe_via_dll\sha1.dll" (ByRef text As String) As String
Ganz herzlichen Dank für Eure Zeit und Hilfe.
Gruß
Andy