Für allgemeine Fragen zur Programmierung mit PureBasic.
Thorsten1867
Beiträge: 1360 Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:
Beitrag
von Thorsten1867 » 07.02.2014 18:53
[PB 5.21 LTS]
Nachdem ich relativ wenig Erfahrung mit DLLs habe, mache ich vermutlich irgendeinen unverzeihlichen Fehler und erhalte stets einen Speicherfehler:
"Ungültiger Speicherzugriff (Lesefehler an Adresse 0)"
Code: Alles auswählen
Structure DLLStructure
Schule.s{64}
Lehrer.s{48}
Schuljahr.s{9}
Klasse.s{12}
EndStructure
Global kvDCDLL.DLLStructure
kvDCDLL\Schule = Schule$
kvDCDLL\Lehrer = Lehrer$
kvDCDLL\Schuljahr = Schuljahr$
kvDCDLL\Klasse = Klasse$
Prototype.l PT_kvDC_InitDLL(*PtrDLL.DLLStructure)
kvDC_Lib = OpenLibrary(#PB_Any, "kvDC.dll")
If kvDC_Lib
Global kvDC_InitDLL.PT_kvDC_InitDLL = GetFunction(kvDC_Lib, "kvDC_InitDLL")
EndIf
kvDC_InitDLL(@kvDCDLL)
Zuletzt geändert von
Thorsten1867 am 07.02.2014 19:56, insgesamt 1-mal geändert.
Download of PureBasic - Module
Download of PureBasic - Programmes
[Windows 11 x64] [PB V6]
mk-soft
Beiträge: 3902 Registriert: 24.11.2004 13:12
Wohnort: Germany
Beitrag
von mk-soft » 07.02.2014 19:42
Deine Struktur kann nicht passen.
Bei externen DLL kannst du nicht die PB-Interna Stringverwaltung so verwenden.
Nehme an das ide DLL Strings mit fester länge erwartet...
Code: Alles auswählen
Structure DLLStructure
Schule.s{100}
Lehrer.s{100}
Schuljahr.s{100}
Klasse.s{100}
EndStructure
Thorsten1867
Beiträge: 1360 Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:
Beitrag
von Thorsten1867 » 07.02.2014 19:57
Ich fürchte, dass war es nicht.
Erhalte immer noch den gleichen Fehler.
Download of PureBasic - Module
Download of PureBasic - Programmes
[Windows 11 x64] [PB V6]
Bisonte
Beiträge: 2476 Registriert: 01.04.2007 20:18
Beitrag
von Bisonte » 07.02.2014 20:05
Dann wäre eine Info zu der zu erwartenden Struktur nicht schlecht.... (Also ohne Doku schlecht)
Evt. (ich rate auch mal so blind)
Code: Alles auswählen
Structure DLLStructure
Schule.c[64]
Lehrer.c[48]
Schuljahr.c[9]
Klasse.c[12]
EndStructure
P ureB asic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Thorsten1867
Beiträge: 1360 Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:
Beitrag
von Thorsten1867 » 07.02.2014 21:00
Sorry, nach stundenlangem Suchen habe ich das Problem endlich entdeckt.
Statt
ProcedureDLL stand
Procedure in der DLL.
Download of PureBasic - Module
Download of PureBasic - Programmes
[Windows 11 x64] [PB V6]
Chimorin
Beiträge: 451 Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III 6Gb DDR 3 RAM AMD Phenom II X4 B55 @ 3,6GHz Windows 7 Home Premium 64-bit
Beitrag
von Chimorin » 08.02.2014 12:22
Da können wir dann auch nicht helfen...
- formerly known as Bananenfreak -
NicTheQuick
Ein Admin
Beiträge: 8837 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
Beitrag
von NicTheQuick » 08.02.2014 15:19
Und wie immer das leidige Thema: Rückgabewerte überprüfen! Selbst Schuld, wenn man das nicht tut. 'GetFunction()' gibt 0 zurück, wenn es die Funktion nicht gibt.
Thorsten1867
Beiträge: 1360 Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:
Beitrag
von Thorsten1867 » 08.02.2014 15:24
NicTheQuick hat geschrieben: Und wie immer das leidige Thema: Rückgabewerte überprüfen! Selbst Schuld, wenn man das nicht tut. 'GetFunction()' gibt 0 zurück, wenn es die Funktion nicht gibt.
Gut zu wissen.
Da ich keine wirkliche Erfahrung mit DLLs habe, war ich wohl zu sehr auf die übergebene Struktur fixiert, um das Offensichtliche zu bemerken.
Download of PureBasic - Module
Download of PureBasic - Programmes
[Windows 11 x64] [PB V6]