HANDLE an andere Klasse übergeben?
-
Hi,
ich hab folgendes Problem:
Ich warte in meiner bla.cpp auf das HANDLE bereit:
while(1)
{
dw = WaitForSingleObject(bereit,1000);
if(dw == WAIT_OBJECT_0)
break;
std::cout << dw << std::endl;
Sleep(1000);
}Dieses HANDLE hab ich vorher in bla.cpp erzeugt:
bereit = CreateMutex(NULL,TRUE,NULL);
und übergebe es im Konstruktor der Klasse testexport.
Wenn ich nun im Konstruktor ReleaseMutex(b) aufrufe, so gibt die
WainForSingleObject Funktion ein WAIT_OBJECT_0 zurück und alles ist in Ordnung.
Ich will aber ReleaseMutex(b) in der startMain aufrufen und das Funktioniert nicht. Hab schon alles probiert.
Wenn mir da jemand helfen könnte?Datei testexport.h
#ifndef _TESTEXPORT_HXX #define _TESTEXPORT_HXX #include <windows.h> class testexport { public: testexport(HANDLE); ~testexport(); void startMain(); private: HANDLE b; }; #endifDatei testexport.cpp
#include <iostream> #include "testexport.h" testexport::testexport(HANDLE be) { //b = OpenMutex(MUTEX_MODIFY_STATE,TRUE,"MutexAuslesen"); b = be; //ReleaseMutex(b); } testexport::~testexport() { } void testexport::startMain() { ReleaseMutex(b); }
-
Hallo
Das gehört bestimmt nicht in das Forum.
chrische
-
Hi,
welches Forum schlägst Du dann vor?
Ich hielt es für das sinnvollste.Winz!
-
welche fehlermeldung kriegst du von ReleaseMutex?
-
Ich bekomme keine Fehlermeldung von ReleaseMutex().
Ich habe halt erwartet, dass in beiden erläuterten Fällen die
WainForSingleObjekt-Methode nachdem ReleaseMutex() ausgeführt wurde,
ein WAIT_OBJECT_0 zurückgeben würde.Ich will ja in meinem Programm erst dann fortfahren, wenn die Methode startMain aus der Klasse testexport ausgeführt wurde.
Winz!
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
hallo ich habe nicht ganz verstanden kannst du ein fertiges beispiel posten?;,
-
Hallo
Winz schrieb:
Hi,
welches Forum schlägst Du dann vor?
Ich hielt es für das sinnvollste.Winz!
Das wohin es verschoben wurde.

chrische
-
Mach es besser mit Events (CreateEvent/SetEvent). Mutexe machen i.d.R. innerhalb eines Prozesses wenig sinn...
-
Danke,
ich habs jetzt mit Events ausprobiert und es funktioniert.
Es sollte aber mit Mutexe genauso funktionieren, da ich da ja nichts anderes mache außer das ich statt CreateEvent CreateMutex usw. benutze.
Versteh halt nicht, warum das mit Mutex nicht funktioniert hat.
MfG, Winz!