Struktur an DLL übergeben?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Struktur an DLL übergeben?

Beitrag von Thorsten1867 »

[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]

Bild
Benutzeravatar
mk-soft
Beiträge: 3902
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Struktur an DLL übergeben?

Beitrag von mk-soft »

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
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: Struktur an DLL übergeben?

Beitrag von Thorsten1867 »

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]

Bild
Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

Re: Struktur an DLL übergeben?

Beitrag von Bisonte »

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
PureBasic 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​​
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: Struktur an DLL übergeben?

Beitrag von Thorsten1867 »

Sorry, nach stundenlangem Suchen habe ich das Problem endlich entdeckt.
Statt ProcedureDLL stand Procedure in der DLL. :angry:
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
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

Re: Struktur an DLL übergeben?

Beitrag von Chimorin »

Da können wir dann auch nicht helfen...
Bild

- formerly known as Bananenfreak -
Benutzeravatar
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

Re: Struktur an DLL übergeben?

Beitrag von NicTheQuick »

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.
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: Struktur an DLL übergeben?

Beitrag von Thorsten1867 »

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]

Bild
Antworten