fehler bei OpenFileRequester
Nanü persepole,
ich war der Ansicht, dass Du schon in Richtung C[++|#] entschwunden
bist.
Na gut, hier noch ein Rat von einem -- wie hast Du das nochmal so schön
beschrieben? -- Klugscheisser:
Niemand hindert Dich, Deinen Bugreport im englischen Forum
vorzutragen. Dort liest Fred mit, der der Hautpprogrammierer von
PureBasic ist.
> Klar, für den Hobbyprogrammierer ist das Progrämmchen ja ganz
> schön, aber meine zweifel werden immer größer das sich PB als
> alternative zu richtigen Programmiersprachen nicht behaupten kann.
> Es hat den anschein das sich in diesem Forum doch so mancher
> überschätzt.
Take it or leave it. Aber tu mir den Gefallen und troll hier nicht rum!
ich war der Ansicht, dass Du schon in Richtung C[++|#] entschwunden
bist.
Na gut, hier noch ein Rat von einem -- wie hast Du das nochmal so schön
beschrieben? -- Klugscheisser:
Niemand hindert Dich, Deinen Bugreport im englischen Forum
vorzutragen. Dort liest Fred mit, der der Hautpprogrammierer von
PureBasic ist.
> Klar, für den Hobbyprogrammierer ist das Progrämmchen ja ganz
> schön, aber meine zweifel werden immer größer das sich PB als
> alternative zu richtigen Programmiersprachen nicht behaupten kann.
> Es hat den anschein das sich in diesem Forum doch so mancher
> überschätzt.
Take it or leave it. Aber tu mir den Gefallen und troll hier nicht rum!
a²+b²=mc²
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Na ja, persepole wird ein bisschen angesäuert sein, da dieses Problem
wirklich ziemlich nervig ist! Mir bleibt ja jetzt auch erst einmal keine Wahl als
mir einen openfilerequster mit API zu machen. Meine Englischkentnisse
reichen für einen detailierten Bugreport leider nicht aus. Aber dass es ein Bug
sein muss ist eigentlich klar! Komischerweise tritt der Fehler in den von mir
gepostetem Beispiel heute nicht auf! Aber auf einem anderen Computer
allerdings schon
Der Fehler scheint nur unter ganz bestimmten Voraussetzungen aufzutreten.
Und wenn das nur selten der Fall und schwer Nachvollziehbar ist, weiß ich
nicht wie groß das Interesse an einer Behebung sein wird.
wirklich ziemlich nervig ist! Mir bleibt ja jetzt auch erst einmal keine Wahl als
mir einen openfilerequster mit API zu machen. Meine Englischkentnisse
reichen für einen detailierten Bugreport leider nicht aus. Aber dass es ein Bug
sein muss ist eigentlich klar! Komischerweise tritt der Fehler in den von mir
gepostetem Beispiel heute nicht auf! Aber auf einem anderen Computer
allerdings schon


Der Fehler scheint nur unter ganz bestimmten Voraussetzungen aufzutreten.
Und wenn das nur selten der Fall und schwer Nachvollziehbar ist, weiß ich
nicht wie groß das Interesse an einer Behebung sein wird.

Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... 

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
aber wenn der fehler nur bei dem requester mit dem PB-befehl auftritt, und bei dem direkten API-aufruf nicht,
und der PB-befehl doch eigentlich (fast) nur ein API-wrapper ist,
dann kann der unterschied doch nicht so groß sein
und dann kann er doch nicht in SO viel code versteckt sein.
der bereich wo der Bug stecken kann müsste doch echt klein sein.
und der PB-befehl doch eigentlich (fast) nur ein API-wrapper ist,
dann kann der unterschied doch nicht so groß sein
und dann kann er doch nicht in SO viel code versteckt sein.
der bereich wo der Bug stecken kann müsste doch echt klein sein.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Tach!
Jetzt habe ich mal probiert das Ganze mit API zu machen:
Ergebnis: Nach den paar Zeilen schon das gleiche Problem!
Tja, da sitz ich ganz schön in der Sch...
EDIT:
So, habe den Quelltext 1:1 nach Delphi portiert und ausprobiert. Keine
Probleme! Müsste also wirklich an PB liegen...
Total verrückt! Jetzt muss ich mir eine OpenRequester dll in Delphi
schreiben, um einen openrequester in PB zu haben
Jetzt habe ich mal probiert das Ganze mit API zu machen:
Code: Alles auswählen
OpenFilename.OPENFILENAME
OpenFilename\lStructSize = SizeOf(OPENFILENAME)
nocheinmal:
If GetOpenFileName_(OpenFilename)
Delay(2)
Goto nocheinmal
EndIf

Tja, da sitz ich ganz schön in der Sch...
EDIT:
So, habe den Quelltext 1:1 nach Delphi portiert und ausprobiert. Keine
Probleme! Müsste also wirklich an PB liegen...
Total verrückt! Jetzt muss ich mir eine OpenRequester dll in Delphi
schreiben, um einen openrequester in PB zu haben

Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... 

Da mir dieser Fehler auch grad aufgefallen ist ...
Ich orientiere mich an diesem Test-Code einer meiner Vorgänger:
Bei mir führt der oben angegebene Code unter PB 4.0 zu:
Beim ersten Mal wurde der Code ignoriert (Dialog nicht aufgerufen, TheFile war leer).
Beim zweiten Mal: "Invalid Memory Access" ausgeführt, was denn dazu führt, das TheFile leer ist.
Shift-F5
Danach verweist er auf die Zeile 1 und meint: "Debugger out of memory!". Er verweist auch dann auf Zeile 1, wenn dort gar kein Code drinsteht.
Alles ein ziemliches Durcheinander, OK, Neustart von PureBasic:
Im Debug-Modus:
1. Ausführen: Funktioniert
2. Ausführen: Stack Overflow
Im Exe-Modus:
Funktioniert es.
@Persepole: Ich halte dies auch für einen Bug, der allerdings nur auf bestimmten Rechnern auftritt. Denke daß da ein Zugriff auf einen "üblichen" Speicherbereich erfolgt, der je nachdem wo genau welche Funktion liegt, klappen kann oder nicht.
Bei jedem Rechner können ja die Prozesse an verschiedenen Adressen liegen und je nachdem wie groß z.B. Treiber oder andere Programme sind, verschieben sich die Adressbereiche. Anders kann ich mir das erstmal nicht erklären. Bin aber kein BS-Profi.
Und scheinbar müßte dann der fehlerhafte Zugriff vom Debugger der PB-IDE ausgelöst sein.
Das Gemeine ist eben, daß bestimmte Leute diesen Fehler einfach nicht nachvollziehen können. Darum laß dir keine grauen Haar wachsen, Persepole.
Alternativen:
1.) Bug-Report im englischen Forum (Fred wird diesen Fehler im ungünstigsten Fall aber gar nicht nachvollziehen können). Erst wenn genügend Fehlermeldungen vorliegen wird man was tun, denk ich.
2.) OpenFileRequester nicht benutzen. WinApi geht.
3.) Hast du es mal als Exe probiert? Wenn es dort geht, einfach auslagern, bis das Problem irgendwann mal gelöst wird.
@All: Stänkert mal hier nicht so herum. Ich kenn euch nämlich auch anders. o_O und da habt ihr mir schon bei bekloppteren Sachen geholfen!
Ich orientiere mich an diesem Test-Code einer meiner Vorgänger:
Code: Alles auswählen
OpenWindow(0, 0, 0, 300, 200, "FileRequester Test", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ButtonGadget(0, 50, 50, 80, 25, "Open File")
Procedure Open()
Protected TheFile.s
TheFile = OpenFileRequester("FileRequester Test", "", "Alle Dateien | *.*", 0)
EndProcedure
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
If EventGadget() = 0
Open()
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
Beim ersten Mal wurde der Code ignoriert (Dialog nicht aufgerufen, TheFile war leer).
Beim zweiten Mal: "Invalid Memory Access" ausgeführt, was denn dazu führt, das TheFile leer ist.
Shift-F5
Danach verweist er auf die Zeile 1 und meint: "Debugger out of memory!". Er verweist auch dann auf Zeile 1, wenn dort gar kein Code drinsteht.
Alles ein ziemliches Durcheinander, OK, Neustart von PureBasic:
Im Debug-Modus:
1. Ausführen: Funktioniert
2. Ausführen: Stack Overflow
Im Exe-Modus:
Funktioniert es.
@Persepole: Ich halte dies auch für einen Bug, der allerdings nur auf bestimmten Rechnern auftritt. Denke daß da ein Zugriff auf einen "üblichen" Speicherbereich erfolgt, der je nachdem wo genau welche Funktion liegt, klappen kann oder nicht.
Bei jedem Rechner können ja die Prozesse an verschiedenen Adressen liegen und je nachdem wie groß z.B. Treiber oder andere Programme sind, verschieben sich die Adressbereiche. Anders kann ich mir das erstmal nicht erklären. Bin aber kein BS-Profi.
Und scheinbar müßte dann der fehlerhafte Zugriff vom Debugger der PB-IDE ausgelöst sein.
Das Gemeine ist eben, daß bestimmte Leute diesen Fehler einfach nicht nachvollziehen können. Darum laß dir keine grauen Haar wachsen, Persepole.

Alternativen:
1.) Bug-Report im englischen Forum (Fred wird diesen Fehler im ungünstigsten Fall aber gar nicht nachvollziehen können). Erst wenn genügend Fehlermeldungen vorliegen wird man was tun, denk ich.
2.) OpenFileRequester nicht benutzen. WinApi geht.
3.) Hast du es mal als Exe probiert? Wenn es dort geht, einfach auslagern, bis das Problem irgendwann mal gelöst wird.
@All: Stänkert mal hier nicht so herum. Ich kenn euch nämlich auch anders. o_O und da habt ihr mir schon bei bekloppteren Sachen geholfen!

>2.) OpenFileRequester nicht benutzen. WinApi geht.
Hatte den Bug auch schon bei Benutzung von WinAPI und PB. Ist aber total
verrückt! An manchen Tagen keine Probleme, dann mal wieder, dann mal
wieder nicht! Ich versteh das nicht...
Hatte den Bug auch schon bei Benutzung von WinAPI und PB. Ist aber total
verrückt! An manchen Tagen keine Probleme, dann mal wieder, dann mal
wieder nicht! Ich versteh das nicht...

Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... 

Hallo,
unschönes Problem hier. Bisher löse ich das Problem
mit folgender unschönen Lösung, hehe.
Die Tooltips werden vor jedem aufruf abgeschaltet.
Bisher habe ich auf 5 Rechner noch keine Fehlermeldung bekommen.
Scheint ganz gut zu Funktionieren.
MFG
persepole
unschönes Problem hier. Bisher löse ich das Problem
mit folgender unschönen Lösung, hehe.
Code: Alles auswählen
RegGetVal.s = RegGetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced","ShowInfoTip",".")
If RegGetVal = "1"
RegSetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced","ShowInfoTip","0",#REG_DWORD,".")
EndIf
open$ = OpenFileRequester("Projekt öffnen", inp, "Datei (*.vp)|*.vp", 0)
If RegGetVal = "1"
RegSetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced","ShowInfoTip","1",#REG_DWORD,".")
EndIf
Bisher habe ich auf 5 Rechner noch keine Fehlermeldung bekommen.
Scheint ganz gut zu Funktionieren.
MFG
persepole