Hi Leute,
ich hab jetzt mal PB unter Linux getestet. Funzt ja eigentlich soweit auch ganz gut, ich hab nur folgendes Problem.
Ich hab ein kleines externes LCD das per USB angesprochen wird.
Dafür gibt es ein Lib mit der das Display unter Linux angesprochen werden kann. Das funzt aus PB heraus eigentlich soweit auch, aber wenn ich einen Funktionsaufruf der Lib in eine Procedure auslagere, stürzt das Programm immer am Ende der Procedure ab. Die Funktion aus der Lib und alles danach wird einwandfrei ausgeführt, aber sobald das Programm bei ProcedureReturn oder EndProcedure ankommt ist schluss. Der Debugger erzeugt auch keine Meldung, das Programm läuft einfach nicht weiter.
Dabei ist es völlig egal, ob ich den Funktionsaufruf der Lib mit CallFunction oder CallFunctionFast mache.
Wenn ich den Funktionsaufruf der Lib auskommentiere läuft die Procedure erfolgreich durch.
Wenn ich den funktionsaufruf im "Hauptstrang" des Programmes mach, wird er einwandfrei ausgeführt. Nur sobald eine Procedure um den Aufruf herum ist, ist sense.
Hat jemand eine Idee, woran das liegen kann, und wie ich es beheben/umgehen kann?
Ach ja, es gibt ein Test Programm in C mit der Lib, das funzt einwandfrei.
Gruß
LordK
(LINUX) Crash beim aufruf einer ext. library aus einer Proc.
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Das ist mir auch schon aufgefallen. Man kann auch nicht die Bibliotheksfunktionen aufzählen, soviel ich mich noch dran erinnere.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
zu 1.
Ich benutze keine Proceduren mehr sondern Macros.
z.b.
zu 2.
Unter Linux hatte ich das selbe problem das die Lib nur mit CallCFunctionFast ansprechbar war,hatte mich aber weiter nicht gestört.
Ich benutze keine Proceduren mehr sondern Macros.
z.b.
Code: Alles auswählen
Macro LUI_LCDmode(a,b,c,d,e)
CallFunctionFast(LUI__LCDmode,a,b,c,d,e)
EndMacro
Unter Linux hatte ich das selbe problem das die Lib nur mit CallCFunctionFast ansprechbar war,hatte mich aber weiter nicht gestört.

- 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
Ne lib nach stdcall Konventionen unter Linux, gibts denn sowas auch. Ist doch
das M$-Format. Unter Linux sollten Libs immer im CDECL Format vorliegen,
allso CallCFunction bzw. CallCFunctionFast. In älteren PB-Linux Versionen
wurde das leider noch verkehrt gehändelt.
das M$-Format. Unter Linux sollten Libs immer im CDECL Format vorliegen,
allso CallCFunction bzw. CallCFunctionFast. In älteren PB-Linux Versionen
wurde das leider noch verkehrt gehändelt.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
