Timer event
-
Hui, wie fein. Threads ohne Synchronisierung.
Tip: lass das mit den Threads, und sieh zu dass du es anders gebacken bekommst.
-
Also das klappt so alles nichts , bei boost threading muss man irgendwelche libs und files einbinden die zu allem übel auch noch falsche Header haben und alles doof .. Will einfach nicht klappen jemand anderes eine Idee
-
Toa schrieb:
Also das klappt so alles nichts , bei boost threading muss man irgendwelche libs und files einbinden die zu allem übel auch noch falsche Header haben und alles doof .. Will einfach nicht klappen jemand anderes eine Idee
...für Boost.thread musst man libboost_thread linken und boost/thread.hpp einbinden. Wo ist da das Problem? Oo
-
Woher bekomm ich das hab ma gegoogelt und da bekomm ich ein mega pack an files und wenn ich die Thread linke muss die wiederrum mit einer Config gelinkt sein etc
-
Toa schrieb:
Woher bekomm ich das hab ma gegoogelt und da bekomm ich ein mega pack an files und wenn ich die Thread linke muss die wiederrum mit einer Config gelinkt sein etc
Es gibt eine config.hpp, aber an der musste ich bisher weder was verändern, noch die explizit dazulinken.
Am besten liest du dir mal die Anleitung durch wie man boost unter windows kompiliert und benutzt: http://boost.org/more/getting_started/windows.html
-
Das klappt bei mir alles nicht schon recht nicht mit #include < > ich muss " nehmen damit er überhaupt die thread file findet und dann hat er Probleme die config und anderen files zu finden
-
Du musst den Ordner mit den boost:: Headerns schon zum Include-Path hinzufügen.
-
Reicht es denn nicht wenn die die thread.hpp include die anderen files sind doch in der thread.hpp includet ...
..Edit : kannst du vielleicht ein leeres Projekt machen die boost files adden und hochladen ? das wäre super weil bei mir will und will es nicht klappen
-
http://www.savefile.com/files/935472
Funktioniert bei mir
EDIT://
#include <iostream> #include <boost/thread.hpp> using namespace std; int main() { cout << "Hello world!" << endl; return 0; }EDIT://
Jedenfalls findet er sowohl das include als auch die Lib
-
Irgendwie versteh ich das ganze nicht, ich hab die ganzen Boost files und die tu ich einfach in den ordner wo der include path hinzeigt compilier und er meint cannot find lboost_thread ( ld.exe) . Muss ich irgendwie was compilieren ich kann doch die ganzen files nicht zu meinem Projekt hinzufügen , gibt es nicht eine andere weiße das mit den Threads zu machen außer boost wo man nichts hinzufügen muss ?
-
Du sollst die boost-Header nicht in den include-Path kopieren!
Du must den Inckude-Path so umstellen dass er auch auf die boost-Header zeigt und den Libpath, dass der auch auf die boostLibs zeigt.
Was für eine IDE hast du eigentlich?
-
Meine ENtwicklungs umgebung ist COde::Blocks und der COmpiler GCC Gnu
-
Win als Platform oder Linux?
Settings->Compiler&Debugger->Search Directories
Bei Compiler trägst du das Verzeichniss mit den Headern ein; bei Linker das Verzeichniss mit den Compilierten Libs.
-
Linking console executable: ..\bin\console.exe
..\bin\.objs\src\World\Bo.o:Bo.cpp:(.text+0xf0b): undefined reference toboost::thread::thread(boost::function0<void, std::allocator<boost::function_base> > const&)' ..\\bin\\.objs\\src\\World\\Bo.o:Bo.cpp:(.text+0xfb3): undefined reference toboost::thread::~thread()'
..\bin\.objs\src\World\Bo.o:Bo.cpp:(.text+0x1092): undefined reference to `boost::thread::~thread()'http://www.imagehack.eu/de/uploads/9b11c79c61.jpg
Operating System is WIndows
-
Toa schrieb:
void foo() { int var; var + 5 ; sleep (10 min); var - 5 ; }wuerde das so klappen ?
Wenn ich mir das so ansehe, solltest du dir vielleicht eher noch mal die Grundlagen anschauen...?
-
Ja lol , das is "Pseudo COde" Also nur Programm Logik kein ausführbarer COde xD
-
Aso, ok

-
timeSetEvent() sag ich mal
-
Bringt nichts wenn man keine Event-Queue hat.
Sonst ist was in die Richtung natürlich geeignet.
-
Also ich mach das ganze nun so und das klappt auch :
//main DWORD threadId; HANDLE threadHandle; threadHandle =CreateThread(NULL, 0, ThreadProc, NULL, 0, &threadId);und hier der thread
DWORD WINAPI ThreadProc(LPVOID lpParam) { //Sleep(60000); Sleep(40000); }jetzt noch eine kleine Frage wie kann ich dem Thread diesen Zeiger Übergeben sPlayer *wPlayer ?
Also eigentlich müsste man den Thread doch dann so aufrufen :
threadHandle =CreateThread(NULL, 0, ThreadProc, wPlayer, 0, &threadId);aber was muss in die signatur von DWORD WINAPI ThreadProc(LPVOID lpParam) )
weil DWORD WINAPI kann man ja nur einen Void Pointer übergeben Sad
wie mach ich das denn nun ??