klassenobjekt an thread übergeben



  • Hi,

    folgendes problem:

    ich erstelle in der windows form beim klick auf einen button mein
    objekt welches von einer klasse A abgeleitet wurde und übergebe es an
    die statische klasse shellconnector.

    In der dieser klasse wird dann der zeiger auf das objekt kopiert und ein
    thread gestartet(EventHandler). Dort sollte nun der kopierte zeiger an die funktion
    DoEvent übergeben werden.

    Nun bekomme ich aber die meldung: Konvertierung des parameters 2 von cli::interior_ptr<Type> in A
    nicht möglich. kann mir vl jemand sagen was ich falsch mache?

    oder wie kann ich sonst mein objekt an den thread übergeben?

    private: System::Void btnHWGeneral_Click(System::Object^  sender, System::EventArgs^  e) 
    {
         B object;
         ShellConnector::DelegateTestObject(0,&object);
    }
    
    ref class ShellConnector
    {
    	static System::Threading::Thread ^eventthread;
            static A *_t;
            static int _e;
    
            static void DelegateTestObject(int e, A *object)  
    	{
                    _e = e;
                    _t = object;
    
    	        eventthread = gcnew System::Threading::Thread( gcnew System::Threading::ThreadStart( &EventHandler) );
    		eventthread->Start ();
    	}
    
            static void EventHandler()
    	{
                  DoEvent(_e,&_t);
    	}
    
            static void DoEvent(int e, A(**t)) 
    	{
                 //eventStartTest(e,t);
    	}
    }
    


  • Das ist C++/CLI...
    Übergebe doch einfach eine Member-Funktion anstelle einer statischen Methode...



  • also all zu viel ändern möchte und kann ich eigentlich nicht. das ganze ist ein bestehendes projekt. jedoch
    leider absolut unsinnig programmiert. jedesmal wenn ich einen button hinzufüge, muss ich eine neue case
    abfrage einbauen. das möchte ich auf diese art eben vermeiden, indem ich ein abgeleitetes testobjekt
    erstelle und die virtuelle methode der oberklasse aufrufe. nur leider bekomme ich eben diesen
    error wenn ich den pointer des objektes an die threadmethode weitergeben will.

    lg



  • aussichtslos...



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten