Hi Leute,
ich habe ein paar Probleme mit meiner Klasse CThread, die von CWinThread abgeleitet ist mit dem Klassenassistenten von VC++ erstellt wurde.
Ich möchte dem Konstruktor von CThread einige Parameter übergeben. Da CThread aber DECLARE_DYNCREATE erstellt wird, wird ein Standard Konstruktor benötigt. Also habe ich einen zweiten geschrieben und dann eine Instanz mit CThread thread(m_edit.GetSafeHwnd()); erstellt. Das bringt jedoch nichts, weil damit der Thread nicht startet. Normalerweise wird mit AfxBeginThread(RUNTIME_CLASS(CThread)); der Thread gestartet und die Memberfunktion
BOOL CThread::InitInstance()
{
{
angesprungen. Wenn ich eine Instanz mit
CThread thread(m_edit.GetSafeHwnd()); erstelle, wird nur der Konstruktor durchlaufen aber die Memberfunktion
BOOL CThread::InitInstance() nicht angesprungen und auch kein Thread erstellt. Ich habe die Code für den Thread im Konstruktor untergebracht und so festgestellt, das kein Thread erzeugt wurde.
Ich habe auch schon DECLARE-/IMPLEMENT_DYNCREATE durch DECLARE-/IMPLEMENT_DYNAMIC ersetzt. Dann kommt die Fehlermeldung: Nicht genügend Speicher.
Nun meine Fragen: Welche Parameter muß ich mit
AfxBeginThread() übergeben, damit ich dem Konstruktor Parameter mitgeben kann? Oder gibt es noch eine andere Möglichkeit CThread/CWinThread zu verwenden?
Vielen Dank im voraus für Eure Hilfe.
Grüße
xthing
ich habe ein paar Probleme mit meiner Klasse CThread, die von CWinThread abgeleitet ist mit dem Klassenassistenten von VC++ erstellt wurde.
Ich möchte dem Konstruktor von CThread einige Parameter übergeben. Da CThread aber DECLARE_DYNCREATE erstellt wird, wird ein Standard Konstruktor benötigt. Also habe ich einen zweiten geschrieben und dann eine Instanz mit CThread thread(m_edit.GetSafeHwnd()); erstellt. Das bringt jedoch nichts, weil damit der Thread nicht startet. Normalerweise wird mit AfxBeginThread(RUNTIME_CLASS(CThread)); der Thread gestartet und die Memberfunktion
BOOL CThread::InitInstance()
{
{
angesprungen. Wenn ich eine Instanz mit
CThread thread(m_edit.GetSafeHwnd()); erstelle, wird nur der Konstruktor durchlaufen aber die Memberfunktion
BOOL CThread::InitInstance() nicht angesprungen und auch kein Thread erstellt. Ich habe die Code für den Thread im Konstruktor untergebracht und so festgestellt, das kein Thread erzeugt wurde.
Ich habe auch schon DECLARE-/IMPLEMENT_DYNCREATE durch DECLARE-/IMPLEMENT_DYNAMIC ersetzt. Dann kommt die Fehlermeldung: Nicht genügend Speicher.
Nun meine Fragen: Welche Parameter muß ich mit
AfxBeginThread() übergeben, damit ich dem Konstruktor Parameter mitgeben kann? Oder gibt es noch eine andere Möglichkeit CThread/CWinThread zu verwenden?
Vielen Dank im voraus für Eure Hilfe.
Grüße
xthing