CreateThread - keine Memberfunktion erlaubt ?
-
Hmmmm schrieb:
SendMessage ( GetDlgItem( hClientList[0] , ClientListBoxId ) , LB_DELETESTRING , 2 , 0 );-> Löscht immer das letzte Item der Listbox. Trotz des Hardcodings von index ( wPara ) ;O
Nö. Das tut es nicht...
-
Bei mir leider schon

Screeni : http://imageupload.org/?d=4A0697231
-
theta schrieb:
..
Hast natürlich recht, sollte heißen:
static unsigned long __stdcall foo(void *param)Ich nutze irgendwie immer nur _beginthread und war zu faul die richtige Signatur zu suchen

@Hmmmm
Könntest du mir mal deinen ganzen Code (am besten gleich als VS Projekt, sonst halt einfach so) zuschicken (Mail über mein Profil)? Also falls das nicht irgendwie geheim sein soll oder so, denn das würde mich jetzt schon mal interessieren
-
Okay, gerne ;P
dazu muss ich mich aber eben erstmal reggen ( um deine Email zu sehen ) und das ganze compilefähig unter VSC++ 2010 machen. Ist immo immernoch unter devc++ und einige Sachen nimmt vsc++ nicht an ^^
-
Hi,..
Nochmal etwas zu CreateThread und Memberfunktionen:
http://www.c-plusplus.net/forum/278752Ich habe mir eine basisklasse geschrieben die ich als "handler" mit den methoden
vererbe:class _thread_handler: public _thread_member_serializer { protected: HANDLE hThread; DWORD dwThreadId; _thread::LockedSignalStruct tssSignal; public: virtual DWORD WINAPI run(LPVOID lpParam=0); //=0; virtual start(BOOL BlockTillStartupSignaled=FALSE,DWORD dwTimeout=0,DWORD StackSize=0); virtual stop(BOOL BlockTillEndSignaled=TRUE,DWORD dwTimeout=5000); HANDLE _get_handle(void); DWORD _get_id(void); }tssSignal hat noch (Inlerlockabel) member die den startup signalisieren und im member run(thread) signalisieren das dieser beendet werden soll (muss natürlich jeden zyklus abgefragt werden) um ein unsauberes Terminate zu vermeiden...
Damit kann man sauber und gut arbeiten ...
grüüße

-
@ zeusosc ;O Sieht iwie nice aus
Habe mich aber nur seeehr oberfächlich mit threads beschäftigt, ich glaube da kann man zieemlich in die Tiefe gehenOh man ey ... wieso wollen denn all die Funktionen auf einmal TCHAR's -.- Ich muss das komplett alles umschreiben lal. Auch widestrings nehmen damit es unter VSC++ 2010 compiled. Neeeeeeeervt xD
Heute abend sollte ich das fertig haben, dann schick ichs dir mal.
-
Hmmmm schrieb:
Oh man ey ... wieso wollen denn all die Funktionen auf einmal TCHAR's -.-
Dann hast du irgendwas "falsch" gemacht. (Wobei falsch jetzt bedeutet, dass du das Ziel hattest, dass die keine TCHARS wollen).
Lege einfach ein leeres Projekt an, da musste nichts umschreiben.
-
Hmmmm schrieb:
Oh man ey ... wieso wollen denn all die Funktionen auf einmal TCHAR's
Weil Du Dein Projekt nicht von UNICODE auf Multibyte umgestellt hast. Musst mal in den Projekteinstellungen suchen.
-
Verdrehts nicht:
TCHAR ist der "generiche" Zeichentyp - der ist entweder char oder wchar_t.
-
Jo, aber TE hat offensichtlich durchweg char benutzt, und das scheitert, wenn er sein Projekt als UNICODE - Projekt kompilieren will.
-
Yop, den Tipp mit dem Multibyte-compile hat mir auch grad jemand gegeben - compiled so einwandfrei ^^ Hat das noch irgendwelche Auswirkungen oder kann man das bedenkenlos verwenden ?
-
Du kannst Dein Projekt halt nur als Multibyte-Projekt kompilieren, so wie bisher mit Deinem DEV C++ auch.
Setzt Du statt der char's WCHAR's ein, kannst Du nur UNICODE.
Und TCHAR ist halt ein generischer Typ, der abhängig vom UNICODE - MAKRO in char oder WCHAR umgesetzt wird.
Das heißt, wenn Du konsequent TCHAR benutzt, kannst Du Dein Projekt wahlweise als UNICODE-Projekt oder Multibyte(ANSI)-Projekt erstellen.
Wenn Du da keinen Bedarf hast, lass es einfach bei char und Multibyte.
-
Ach, so macht das sinn ;P Danke für die Erläuterung !
-
Ach das Problem war, dass ich den Eintrag nicht vorher aus dem vector mit den Namen gelöscht habe ... sondern einfach nur die Lösch-Message an das Window geschickt habe. Dadurch wurde dann der Falsche eintrag gelöscht ^^