jeNova- Geschrieben 11. Februar 2009 Geschrieben 11. Februar 2009 Hallo! Ich bin ein ziemlicher C++ Anfänger, aber tue mein bestes um schnell zu lernen Nun will/wollte/hab ich ein Programm geschrieben das mehrere Endlos Schleifen braucht, mir wurde von Freunden aus dem IRC dabei geholfen die meinten ich muss das ganze mit Threads machen etc. und nun sieht mein Programm ungefähr so aus: Nopaste - No description Allerdings bekomme ich diverse Errors, diese da wären: error C2501: 'CreateThread' : missing storage-class or type specifiers error C2373: 'CreateThread' : redefinition; different type modifiers error C2078: too many initializers Und desweiteren hab ich noch eine Frage, muss ich die Voids die ich dann habe ( Siehe Beispiel code oben ) Dann noch in int main aufrufen oder kann ich int main komplett weg lassen weil die durch das "Threading" gestartet werden? Hab leider gar keine Ahnung von Threading, da die Tutorials dazu auch alle sehr kompliziert aussehen, hab diesen Codes eben nur von Freunden aus dem IRC MfG, jeNova- Zitieren
Klotzkopp Geschrieben 11. Februar 2009 Geschrieben 11. Februar 2009 CreateThread ist eine Funktion, die du aufrufen musst, um einen neuen Thread zu starten. Funktionsaufrufe dürfen aber nicht einfach so in der Quellcodedatei stehen, sondern müssen innerhalb von anderen Funktionen stehen, z.B. in main. Eine Threadfunktion kann auch nicht jede beliebige Signatur haben - void(void) ist schon mal falsch. Eine Threadfunktion für CreateThread muss die Signatur DWORD(void*) haben. Die richtige Signatur erkennst du daran, dass du den Cast auf LPTHREAD_START_ROUTINE nicht brauchst. Allerdings ist CreateThread generell keine gute Idee, wenn du vorhast, irgendwelche Funktionen der Standardbibliothek zu benutzen. In diesem Fall ist _beginthreadex die richtige Funktion. Hier muss die Threadfunktion void(void*) sein. Ich weiß ja nicht, was für ein lustiges Programm du da schreiben willst/schreiben wolltest/geschrieben hast, aber ich habe den Eindruck, dass du dich da mächtig übernimmst. Vielleicht suchst du dir zunächst mal ein paar einfachere Aufgaben, als gleich mit Threads anzufangen. Das Thema hat es in sich. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.