Aktuelle Zeit: 22.05.2018 15:55

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: CreateMenu mit #PB_Any Fehler
BeitragVerfasst: 26.11.2017 16:46 
Offline

Registriert: 26.11.2017 16:17
Ich bin beim Versuch von Windows auf Linux umzusteigen, habe also wenig Linux Kenntnisse.
Aktuell verwende ich PureBasic v5.61 x64 mit Debian Strech v9.2.1 amd64 und Xfce v4.12 als Desktop.

Mit dem leicht geänderten Beispielcode aus der Hilfe gibt es einen Speicherzugriffsfehler.
Man kann das Menü nicht mit der Konstante #PB_Any erstellen.
Ist das ein PureBasic-Fehler?

Peter

Code:
EnableExplicit

Global miWindow.i
Global miMenu.i
Global miEvent.i

Procedure TestHandler()
   Debug "Test menu event"
EndProcedure

Procedure QuitHandler()
   Debug "Quit menu event"
   End
EndProcedure

miWindow = OpenWindow(#PB_Any, 100, 100, 200, 50, "Click test", #PB_Window_SystemMenu)

miMenu = CreateMenu(#PB_Any, WindowID(miWindow)) ; Error when clicking on the menu: "[ERROR] Invalid memory access".
; miMenu = 0 : CreateMenu(miMenu, WindowID(miWindow)) ; OK.
Debug "miMenu = " + miMenu

MenuTitle("File")
MenuItem(0, "Test")
MenuItem(1, "Quit")

BindMenuEvent(miMenu, 0, @TestHandler())
BindMenuEvent(miMenu, 1, @QuitHandler())

Repeat
   miEvent = WaitWindowEvent()
Until miEvent = #PB_Event_CloseWindow


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CreateMenu mit #PB_Any Fehler
BeitragVerfasst: 26.11.2017 17:11 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Ich hab jetzt mal kurz mit PB 5.46 beta 1 getestet, unter XUbuntu. Keine Probleme.
Werde es aber später nochmal mit PB 5.61 testen, im Moment leider keine Möglichkeit.

_________________
PureBasic 5.62 | SpiderBasic 2.10 | Windows 10 Pro (x64) | Linux Mint 18.3 (x64)
"Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei."
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CreateMenu mit #PB_Any Fehler
BeitragVerfasst: 26.11.2017 20:00 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
So, mit PB 5.61 nochmals getested, unter Linux Mint Cinnamon 18.2

Keine Probleme, funktioniert einwandfrei!

_________________
PureBasic 5.62 | SpiderBasic 2.10 | Windows 10 Pro (x64) | Linux Mint 18.3 (x64)
"Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei."
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CreateMenu mit #PB_Any Fehler
BeitragVerfasst: 26.11.2017 20:22 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Kann den Bug unter Ubuntu bestätigen.

X64-System
(VM) Ubuntu 17.10; PB v5.46 (Beate 1); PB v5.45 ; PB v5.60; PB ,5.61

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CreateMenu mit #PB_Any Fehler
BeitragVerfasst: 26.11.2017 20:22 
Offline

Registriert: 26.11.2017 16:17
Danke für den Test.
Ich habe den Grund für den Fehler gefunden, weiß aber nicht was er bedeutet.
Da die kompilierten Programme vom Dateimanager Thunar nicht gestartet werden können, habe ich im englischen Forum gesucht. Dort gibt es die Lösung mit der Zeile
Code:
ImportC "-no-pie" : EndImport

Damit startet das Programm aus dem Dateimanager normal und wird auch nicht mehr als Shared Library erkannt. Den Speicherzugrifffehler gibt es damit nicht mehr.
Die zurückgegebene Nummer für miMenu ist jetzt auch sehr viel kleiner:
vorher: miMenu = 93898407024072
jetzt: miMenu = 10751704

Hier ist der Link zum englischen Forum:
PB5.44 - PB 5.51B1 - Compiled program flagged as Shared lib
shared object and how to fix?

Peter


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CreateMenu mit #PB_Any Fehler
BeitragVerfasst: 26.11.2017 21:45 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Okay, wenn es hilft!

Du kannst jetzt entweder auf ein Linux umsteigen, das den Bug nicht hat (z.B. 16.04 LTS) oder immer diese Zeile hinzufügen, weil die stört auch andere Versionen nicht.

PS: Finde es aber traurig, das so ein Bug in Linux (nicht in PB) nach über ein Jahr nicht gefixed wurde!

_________________
PureBasic 5.62 | SpiderBasic 2.10 | Windows 10 Pro (x64) | Linux Mint 18.3 (x64)
"Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei."
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CreateMenu mit #PB_Any Fehler
BeitragVerfasst: 26.11.2017 23:15 
Offline

Registriert: 26.11.2017 16:17
Bin jetzt etwas ratlos, ob ich mit Linux und PureBasic weitermachen soll.
Bei diesem Beispiel aus der Hilfe gibt es ebenfalls Fehler wenn das Menü eine Checkbox hat.
Code:
If OpenWindow(0, 200, 200, 200, 100, "SetMenuItemState Example")
   If CreateMenu(0, WindowID(0))
      MenuTitle("Project")
      MenuItem(1, "Changed")
      SetMenuItemState(0, 1, 1)    ; set check mark for the previously created menu item
   EndIf
   Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Bei einem etwas größerem Programm stürtzt die IDE mit einem Speicherzugriffsfehler ab, ebenfalls wegen der Checkbox im Menü. Das kompilierte Programm läuft ohne Fehler weiter.

Peter


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CreateMenu mit #PB_Any Fehler
BeitragVerfasst: 26.11.2017 23:51 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Warum wechselst Du nicht die Linux-Version? Alles andere funktioniert doch.

_________________
PureBasic 5.62 | SpiderBasic 2.10 | Windows 10 Pro (x64) | Linux Mint 18.3 (x64)
"Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei."
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CreateMenu mit #PB_Any Fehler
BeitragVerfasst: 27.11.2017 10:41 
Offline

Registriert: 26.11.2017 16:17
Vor einen halben Jahr hatte ich Linux Mint, Ubuntu und OpenSUSE probiert. Leider ist mein PC damit nach ein paar Minuten immer eingefroren. Jetzt habe ich gelesen, dass es wahrscheinlich an der CPU liegt, Intel Celeron J1900, und man einen Kernelparameter angeben kann damit das nicht passiert. Mit dem aktuellen Debian funktionert der PC aber ohne Probleme. Bei einem Wechsel ist also wieder die Frage ob es diesmal funktioniert. Bis ich eine Boot-DVD heruntergeladen habe dauert es einen ganzen Tag.
Also bei dem "Alles andere funktioniert doch." musste ich schmunzeln.

Das mit der Kompileroption PIE und PIC dürfte Absicht sein, und kein Bug. Könnte also auch andere Distributionen betreffen die auf Debian aufbauen. Als Linux-Neuling ist das alles ziemlich schwierig.

Peter


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CreateMenu mit #PB_Any Fehler
BeitragVerfasst: 27.11.2017 12:45 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Bei mir laufen verscheidene Versionen von Windows und Linux auf Viruell-Machines (Mac Parallels)

Empfehlen kann ich VirtualBox (Oracel)

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye