[Solved] Import von "" erzeugt bei wenig Code Error...

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

[Solved] Import von "" erzeugt bei wenig Code Error...

Beitrag von Bisonte »

Hallo.

Da ein unerwartetes Verhalten wohl auch zu Bugs zählt, poste ich mal hier...

Folgender Code erzeugt einen Error :
Bild

Code: Alles auswählen

EnableExplicit

Import ""
  PB_Object_GetThreadMemory(MemoryID)
  PB_Gadget_Globals
EndImport

Procedure GetCurrentGadgetListWindowID()
  Protected *Globals = PB_Object_GetThreadMemory(PB_Gadget_Globals)
  ProcedureReturn PeekI(*Globals)
EndProcedure
wenn ich aber den Code vergrösser... also mehr Zeilen usw. schreibe, dann erscheint keine Fehlermeldung
mehr... (Der inhalt ist egal, selbst Kommentarzeilen scheinen dabei zu zählen, weiss jetzt aber nicht genau
ab wieviel Zeilen (oder direkt FileSize des Source) der Fehler verschwindet...)

Zur Installation... Es sind keine Externen Tools oder Userlibs installiert. "Frischer" Rechner mit "frischer" PB Installation.

Dieses Verhalten ist von PB4.5x bis zur heutigen 461b3 zu sehen.

Ist das nun Bug oder irgendein erklärbares "Phänomen" ?

__________________________________________________
Thread verschoben
Bugs>Allgemein
12.05.2012
RSBasic
Zuletzt geändert von Bisonte am 15.05.2013 20:40, insgesamt 2-mal geändert.
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
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Import von "" erzeugt bei wenig Code Error...

Beitrag von CSHW89 »

Das hat nix mit der Anzahl an Zeilen zu tun. Liegt wohl eher daran, dass im Code keine Gadgets benutzt werden. Im folgenden Code wird durch OpenWindow eine Gadgetliste erstellt, dann funktionierts:

Code: Alles auswählen

EnableExplicit

Import ""
  PB_Object_GetThreadMemory(MemoryID)
  PB_Gadget_Globals
EndImport

Procedure GetCurrentGadgetListWindowID()
  Protected *Globals = PB_Object_GetThreadMemory(PB_Gadget_Globals)
  ProcedureReturn PeekI(*Globals)
EndProcedure

If OpenWindow(0, 0, 0, 400, 200, "", #PB_Window_SystemMenu)
  Repeat
  Until (WaitWindowEvent() = #PB_Event_CloseWindow)
EndIf
lg Kevin
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

Re: Import von "" erzeugt bei wenig Code Error...

Beitrag von Bisonte »

das kann ich nicht so recht nachvollziehen....

Ich nutze das Import in einem grösseren Code (eine selbstgebaute Userlib), der nirgends ein Window öffnet oder eine Gadgetliste erstellt.
Dort ohne Fehler... bei Druck auf F5.
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
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Import von "" erzeugt bei wenig Code Error...

Beitrag von ts-soft »

Die passende Lib muss schon importiert sein, damit das ganze funktioniert. Einfacher WorkAround:

Code: Alles auswählen

EnableExplicit

Import ""
  PB_Object_GetThreadMemory(MemoryID)
  PB_Gadget_Globals
EndImport

Procedure GetCurrentGadgetListWindowID()
  Protected *Globals = PB_Object_GetThreadMemory(PB_Gadget_Globals)
  ProcedureReturn PeekI(*Globals)
  OpenWindow(0,0,0,0,0,"")
EndProcedure 
Kann das ganze mal wieder jemand verschieben? Ist mit 100%iger Sicherheit kein Bug!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

Re: Import von "" erzeugt bei wenig Code Error...

Beitrag von Bisonte »

Nunja... aber immer stehe ich noch vor dem Rätsel, das wenn man (selbst sinnloses) Geschreibsel dranhängt,
also kein OpenWindow oder sonst irgendwas (macht da mal ewig langes Kommentargedöhns ran), es ohne
Fehlermeldung durchgeht...

Da ist mein Verständnisproblem. Also keine Benutzung von irgendwas, nur Kommentare und es geht...
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
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Import von "" erzeugt bei wenig Code Error...

Beitrag von CSHW89 »

Also ich hatte ca. 400 Zeilen Kommentar drangehängt. Danach ca. 400mal "a = 2" oder sowas. Ging beides nicht. Danach einmal nur OpenWindow, dann gings.

Aber eigentlich spielt es ja keine Rolle. Denn selbst wenn es doch ein merkwürdiger Bug ist, kann man ein OpenWindow hinschreiben, dann gehts, und zweitens, wird er vermutlich im Normalfall nie auftauchen.

lg Kevin

PS: ich denke, es gibt da noch ein paar andere Befehle, die die Gadget-Lib brauchen. Vielleicht ja auch Befehle, bei denen man gar nicht vermuten würde, dass sie die Lib benutzen. Und diese bewirken dann das Linken der Lib.
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: Import von "" erzeugt bei wenig Code Error...

Beitrag von edel »

Der Code ist ueberhaupt nicht mehr noetig, benutze lieber UseGadgetList.
Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

Re: Import von "" erzeugt bei wenig Code Error...

Beitrag von Bisonte »

edel hat geschrieben:Der Code ist ueberhaupt nicht mehr noetig, benutze lieber UseGadgetList.
Aber,aber,aber ;)

Ne ich benutze das, um herauszufinden, welche Gadgetlist grade in der Mache ist...

Oder hab ich etwa schon wieder was verpasst ? Das es jetzt möglich ist die WindowID mit
UseGadgetList herauszubekommen ?

Edit: Ouch... da stehts in der Hilfe... aua... Asche auf mein Haupt...
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​​
Antworten