Bug in Structure RAWINPUTDEVICELIST

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Bug in Structure RAWINPUTDEVICELIST

Beitrag von hjbremer »

Da ich mich im englischem Forum mit meinem deutschem Usernamen/Passwort nicht anmelden kann, warum auch immer

möge doch einer der Mods diesen Fehler melden, der mindestens seit 5.60 existiert

Structure RAWINPUTDEVICELIST
hDevice.i
dwType.l
EndStructure

für x64 muß es dwType.i heißen

mit dwType.l funktioniert GetRawInputDeviceList() unter x64 nicht.
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Bug in Structure RAWINPUTDEVICELIST

Beitrag von RSBasic »

hjbremer hat geschrieben:Da ich mich im englischem Forum mit meinem deutschem Usernamen/Passwort nicht anmelden kann, warum auch immer
Ich habe nachgeschaut und es existiert kein User mit dem Namen "hjbremer". Hast du dich da überhaupt jemals registriert? Das deutsche und englische Forum sind zwei getrennte Foren.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Re: Bug in Structure RAWINPUTDEVICELIST

Beitrag von hjbremer »

nein, früher glaube ich hieß es man braucht es nicht

also habe ich es gelassen und wegen meinen mäßigen Englisch Kenntnissen kann ich dort eh keine sinnvollen Beiträge posten
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Bug in Structure RAWINPUTDEVICELIST

Beitrag von RSBasic »

hjbremer hat geschrieben:nein, früher glaube ich hieß es man braucht es nicht
Hm, davon weiß ich nichts.
hjbremer hat geschrieben:also habe ich es gelassen und wegen meinen mäßigen Englisch Kenntnissen kann ich dort eh keine sinnvollen Beiträge posten
Mit deepl.com klappt es aber ganz gut.

Ich hab den Fehler für dich im englischen Forum gemeldet.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: Bug in Structure RAWINPUTDEVICELIST

Beitrag von _JON_ »

dwType.l ist schon richtig, nur muss die Struktur aligned werden.

Code: Alles auswählen

Structure RAWINPUTDEVICELIST Align #PB_Structure_AlignC
  hDevice.i
  dwType.l
EndStructure
Gibt sicher hunderte solcher Bugs, Fred sollte endlich mal seine "Residents.pb" veröffentlichen.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Re: Bug in Structure RAWINPUTDEVICELIST

Beitrag von hjbremer »

_JON_ hat geschrieben:dwType.l ist schon richtig, nur muss die Struktur aligned werden.

Code: Alles auswählen

Structure RAWINPUTDEVICELIST Align #PB_Structure_AlignC
  hDevice.i
  dwType.l
EndStructure
Gibt sicher hunderte solcher Bugs, Fred sollte endlich mal seine "Residents.pb" veröffentlichen.
du hast recht, habe es gerade getestet. Mit Align geht es.

Aber so wie die Structure nun mal ist, ist es halt ein Bug. Denn woher soll der NormalUser wie ich das wissen.

Heraus zu bekommen, warum es nicht funktionierte, hat mich immerhin 1 Stunde gekostet. Denn da komm mal drauf.
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
¯\_(ツ)_/¯
Beiträge: 141
Registriert: 18.08.2017 09:35

Re: Bug in Structure RAWINPUTDEVICELIST

Beitrag von ¯\_(ツ)_/¯ »

_JON_ hat geschrieben:

Code: Alles auswählen

Structure RAWINPUTDEVICELIST Align #PB_Structure_AlignC
Das macht Align #PB_Structure_AlignC genau? Was ist der Unterschied zwischen mit Align und ohne Align? Wird die Struktur verändert oder erweitert oder wie muss ich das verstehen? Danke im Vorraus
Bild
DePe
Beiträge: 153
Registriert: 26.11.2017 16:17
Wohnort: Wien
Kontaktdaten:

Re: Bug in Structure RAWINPUTDEVICELIST

Beitrag von DePe »

Die Felder in der Stuktur werden an den 32/64-Bit bw. 4/8 Byte Grenzen ausgerichtet. Ich glaube es gibt aber auch Unterschiede bei den Compilern.
Hier ein Bespiel:

Code: Alles auswählen

Structure Test
	a1.a
	l.l
	a2.a
	i.i
EndStructure

Structure TestAlign Align #PB_Structure_AlignC
	a1.a
	l.l
	a2.a
	i.i
EndStructure

Debug "a1: " + Str(OffsetOf(Test\a1)) + " - " + Str(OffsetOf(TestAlign\a1))
Debug " l: " + Str(OffsetOf(Test\l)) + " - " + Str(OffsetOf(TestAlign\l))
Debug "a2: " + Str(OffsetOf(Test\a2)) + " - " + Str(OffsetOf(TestAlign\a2))
Debug " i: " + Str(OffsetOf(Test\i)) + " - " + Str(OffsetOf(TestAlign\i))


;Executable type: Windows - x64  (64bit, Unicode, Thread, Purifier)
;[Debug] a1: 0 - 0
;[Debug]  l: 1 - 4
;[Debug] a2: 5 - 8
;[Debug]  i: 6 - 16


;Executable type: Windows - x86  (32bit, Unicode, Thread, Purifier)
;[Debug] a1: 0 - 0
;[Debug]  l: 1 - 4
;[Debug] a2: 5 - 8
;[Debug]  i: 6 - 12
Peter
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Bug in Structure RAWINPUTDEVICELIST

Beitrag von Josh »

¯\_(ツ)_/¯ hat geschrieben:Das macht Align #PB_Structure_AlignC genau? Was ist der Unterschied zwischen mit Align und ohne Align? Wird die Struktur verändert oder erweitert oder wie muss ich das verstehen? Danke im Vorraus
Meistens wird die Struktur durch Align verändert, muss aber nicht zwangsweise.

1) Zuerst wird der größte Typ innerhalb der Struktur gesucht. Die Ausrichtungsgrenzen sind dann immer ein vielfaches dieses Typs.

2) Die einzelnen Strukturfelder werden wie ohne Align geschrieben, allerdings, wenn eine einzelne Variable über die Ausgrenzungsgrenze hinausgeht, wird diese so ausgerichtet, dass sie mit der Ausrichtungsgrenze beginnt.

3) Zum Schluss wird das ganze am Ende noch aufgefüllt, dass die Größe der Struktur immer ein vielfaches des unter Punkt 1 ermittelten Wertes ergibt.
Antworten