Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:47

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: SDL_CreateThread
BeitragVerfasst: Sa Aug 30, 2008 17:34 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 01, 2006 08:22
Beiträge: 26
Wohnort: Frauenfeld / CH
Ich wollte gerade mit SDL_CreateThread einen Thread erzeugen, musste jedoch feststellen, dass der Pointer auf die Daten nicht mitkommt. Im Wiki http://wiki.delphigl.com/index.php/SDL_CreateThread ist dies beschrieben, aber intressanterweise wird im Beispiel bei der Funktion thread_func() kein Argument angegeben. Wenn ich einen Pointer angebe ist der immer nil, egal was ich bei SDL_CreateThread angebe. (Lustig auch, dass es in keinem Fall den Stack verheddert)

Ist da irgendwo ein Bug oder hab ich ein Brett vor dem Kopf?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 30, 2008 17:52 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Benutzt du FreePascal? Dann kannst du dir SDL-Threads im prinzip sparen, denn die FreePascal Threads sind auch Plattformunabhängig.

Allerdings steht auch auf libsdl.org nichts, was zu deinen Erfahrungen passt... Es scheint ein Bug zu sein, wobei es mich dann verwundert, dass es noch niemandem aufgefallen ist.

Was das mit dem Stack betrifft: Sowas fällt eher auf, wenn du auf einen Parameter zugreifst, der nicht übergeben wurde. Wenn aber zu viele Parameter übergeben wurden, kann es höchstens nach ein paar tausend aufrufen zu nem Stack Overflow kommen, aber so direkt merkt man da eigentlich nix.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 31, 2008 17:22 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 01, 2006 08:22
Beiträge: 26
Wohnort: Frauenfeld / CH
Hab die Lösung :D , ist ja ganz logisch:
Die Funktion wird von SDL aufgerufen, SDL ist so ein c-ding, und dort werden die Argumente anders herum übergeben!
Hab nun mal cdecl angegeben und es funktioniert wie erwartet.

Wäre gut wenn das im Wiki auch noch gefixt wird.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 31, 2008 17:29 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Das im Wiki stimmt so. Nur was für einen Header benutzt du?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 31, 2008 17:39 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 01, 2006 08:22
Beiträge: 26
Wohnort: Frauenfeld / CH
Ich benutze die JEDI-SDL Revision 1.17.
Meine Änderung ist:
Code:
  1.  
  2. function thread_func(): Integer; cdecl;
  3. // thread body
  4.  

anstatt:
Code:
  1.  
  2. function thread_func(): Integer;
  3. // thread body
  4.  


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 31, 2008 17:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Dann kommt die Userdata an?

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 31, 2008 17:50 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Sep 01, 2006 08:22
Beiträge: 26
Wohnort: Frauenfeld / CH
Jepp. Also bei mir siehts natürlich so aus:

Code:
  1.  
  2. function thread( pData: PThreadData ): Integer; cdecl;
  3. begin
  4.   tuwas( pData^ );
  5. end;
  6. ...
  7.  
  8.  
  9. SDL_CreateThread( @thread, pData );
  10.  
  11.  


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]