Hallo PB Freunde!
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

möchte ich diese in eine Windows DLL kapseln
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:
Zitat:
Die Anweisung in "0x7c809e32" verweist auf Speicher in "0x01ca8000". Der Vorgang "read" kann nicht auf dem Speicher durchgeführt werden.
Ich poste hier mal den Code des Projektes:
In PureBasic 4.51:Datei sha1_dll.bas:Code:
Global ReturnString.s
ProcedureDLL.s CalcSHA1 (InputString.s)
ReturnString = SHA1Fingerprint(@InputString,StringByteLength(InputString))
ProcedureReturn ReturnString
EndProcedure
Die fertige DLL heisst sha1.dllIn 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:
Private Sub Command1_Click()
Dim ergebnis As String
ergebnis = CalcSHA1(Text1.text)
Label1.Caption = ergebnis
End Sub
In Modul SHA1.bas:Code:
Public Declare Function CalcSHA1 Lib "H:\programming\VB6\calc_sha1_summe_via_dll\sha1.dll" (ByRef text As String) As String
Könnt Ihr mir einen Tip geben woran das liegen kann?
Ganz herzlichen Dank für Eure Zeit und Hilfe.
Gruß
Andy