Fehler bei Aufruf einer in PB erstellten DLL unter VB 6.0

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
AndyF
Beiträge: 3
Registriert: 13.09.2011 12:47

Fehler bei Aufruf einer in PB erstellten DLL unter VB 6.0

Beitrag von AndyF »

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:
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: Alles auswählen

Global ReturnString.s

ProcedureDLL.s CalcSHA1 (InputString.s)
  
  ReturnString = SHA1Fingerprint(@InputString,StringByteLength(InputString))
  
  ProcedureReturn ReturnString
  
EndProcedure
Die fertige DLL heisst sha1.dll



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
Könnt Ihr mir einen Tip geben woran das liegen kann?

Ganz herzlichen Dank für Eure Zeit und Hilfe.

Gruß
Andy
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Fehler bei Aufruf einer in PB erstellten DLL unter VB 6.

Beitrag von NicTheQuick »

Ich kann dir leider nicht sagen, wie du dein Problem löst, aber ich kann dir sagen, dass du deine PB-Lizenz verletzt, wenn du einzelne PB-Funktionen wrapst, in DLLs auslagerst und weiter gibts. Für den privaten Gebrauch also völlig okay, nur weitergeben darfst du diese DLL dann nicht.
Antworten