Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

11

03.09.2007, 13:53

Zeig doch mal den kompletten Header + komplette Cpp.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

12

03.09.2007, 14:18

Ich versuch es mal besser zu Posten :

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
Spell.cpp

#include "../../Creature/Creature.h"



DWORD WINAPI ThreadProk(LPVOID voidPtr)
{
    sPlayer* wPlayer = (sPlayer*) voidPtr;
   
    clean_bonus();

}

C-/C++-Quelltext

1
2
3
4
5
6
7
Creature.cpp

void cCreature::clean_bonus()
{
     m_CursorCon(40, 15);
     cout <<"          ";
}


C-/C++-Quelltext

1
2
3
creature.h

    void clean_bonus();


Edit : Also an dem Linken und an den Deklarationen kann es nicht liegen denn die FUnktion wird in der selben file in einer anderen funktion ( KEIN THREAD) gefunden

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

13

03.09.2007, 14:30

Zeig mal die andere Funktion in der es gefunden wird.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

14

03.09.2007, 14:54

Also das seltame ist ,wenn ich die funktion auf der selben seite definiere wie der Thread ist findet er sie aber wenn sie iin einer anderen file ist nicht :/

Ich glaube das liegt daran , das ich den thread Prototyp in die selbe file geschrieben hab wie den Thread

DWORD WINAPI ThreadProk(LPVOID voidPtr);


Wenn ich ihn aber in die Klasse schreibe zu den anderen Prototypen kommt folgender Fehler :

DWORD Does not name a typ , was auch verständlich ist , aber warum mekkert er nur in der klasse und nicht in der file und was soll ich als Typ vor den thread Prototypen schreiben ?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

15

03.09.2007, 18:13

Du machst es einen nicht gerade einfacher dir zu helfen :roll: Am einfachsten wäre es, wenn du uns die entsprechenden Dateien zur Verfügung stellst oder hier postest. Ansonsten ist es wichtig die Reihenfolge der includes zu beachten. Hier ein Beispiel:

C-/C++-Quelltext

1
2
#include <list>
#include "Spieler.h" //hier wird die Klasse std::list gebraucht

geht, aber das hier geht nicht:

C-/C++-Quelltext

1
2
#include "Spieler.h" //hier wird die Klasse std::list gebraucht, ist aber noch nicht bekannt

#include <list> //erst hier kennt er die Klasse std::list
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

16

03.09.2007, 19:13

Seit wann muss man Klassen expliziet includen ? es reicht doch wenn man die datei.h in der die klasse steht einbindet .

Hab nun mal ne Frage (wegen meiner Vermutung)

im moment hab ich den Prototyp vom Thread oben in der selben file stehen nämlich :

Quellcode

1
DWORD WINAPI ThreadProk(LPVOID voidPtr);


Das klappt auch Aber nun möchte ich den Thread in der datei.h in einer Klasse eintragen also den Prototyp .. Nur da meint er kein Typ .. welchen muss ich denn nehmen das der Fehler nicht kommt ? [/code]

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

17

03.09.2007, 19:31

...
warte mal ich hole eben meine Glaskugel...
ach mist, sie ist ja gerade in Reperatur.


Ne mal im Ernst, deine Beschreibungen sind für mir mehr als nur undurchsichtig. Wir hätten das Problem schon seit Stunden gelöst haben können, aber so kommen wir nicht voran...
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

18

03.09.2007, 19:37

Okay ich versuche mal ganz genau zu beschreiben was ich meine :

Also der Thread sieht ja so aus : ( also nur die Form !)

C-/C++-Quelltext

1
2
3
4
5
6
DWORD WINAPI ThreadProk(LPVOID voidPtr)
{
    sPlayer* wPlayer = (sPlayer*) voidPtr;


}


und dieser Thread braucht ja einen Prototypen , diesen hab ich in der selben file in der sich der Thread befindet so definiert

Quellcode

1
DWORD WINAPI ThreadProk(LPVOID voidPtr);


so nun möchte ich diesen Prototyp aber zu den anderen in die Klasse packen diese sieht so aus :


C-/C++-Quelltext

1
2
3
4
class cCreature
{
// Prototypen 

};

so jetzt packe ich den Prototyp des Threads von der FIle in dem sich auch der Thread befindet in die Klasse einer anderen file ( Die File ist includet!)

C-/C++-Quelltext

1
2
3
4
class cCreature
{
DWORD WINAPI ThreadProk(LPVOID voidPtr);
};


Nun ergibt sich folgender Fehler :


Quellcode

1
error: DWORD does not name a type


Nun zu meiner Frage :

WIe kann ich den Prototyp richtig in der Klasse definieren ?

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

19

03.09.2007, 19:44

Indem DWORD überall da bekannt ist, wo ein Prototyp rumhängt?!
(DWORD ist irgendwo in den Tiefen hinter windows.h definiert)

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

20

03.09.2007, 19:51

Ahh stimmt windows.h

Jetzt hab ich windows.h in die file von der klasse Creature includen und den Thread drin definiert :

C-/C++-Quelltext

1
2
3
4
5
6
class cCreature
{
    public:

 DWORD WINAPI ThreadProk(LPVOID voidPtr);
};

FOlgender Fehler :

Quellcode

1
argument of type DWORD (cCreature::)(void*) does not match DWORD (*) ( void*);


Der Thread sieht so aus :

C-/C++-Quelltext

1
2
3
4
5
6
7
8
DWORD WINAPI ThreadProk(LPVOID voidPtr)
{
    sPlayer* wPlayer = (sPlayer*) voidPtr;




}



Könnt ihr damit was anfangen ?

Werbeanzeige