none
Std::thread in VS2010 RRS feed

  • Frage

  • Hallo zusammen,

    ich versuche schon seit einigen Tagen threads in einer Windows Forms Anwendung zu starten.

    Dabei habe ich die Boost Library verwendet, bei einem einfachen Konsolenprogramm hat das auch nach ein paar kleinen Schwierigkeiten funktioniert. In der Windows Forms Anwendung hingegen tritt ein Fehler nach dem anderen auf, zu erst trat dieser Fehler auf allein durch die Anweisung #include <boost/thread> auf:

    Fehler 2 error C2472: "boost::detail::basic_timed_mutex::unlock" kann nicht in verwaltetem Code generiert werden: "Es wurde eine systeminterne Funktion gefunden, die in verwaltetem Code nicht unterstützsützt wird." Kompilieren Sie mit /clr, um ein gemischtes Abbild zu generieren.

    nachdem ich es geschafft hatte diesen Fehler zu terminieren, indem ich #include <boost/thread/thread> verwendet hatte, trat dieser Fehler bei der Erstellung eines einfachen threads, der eine Funktion ausführen sollte auf:

    Fehler error C2237: Adresse von ***** kann nur übernommen werden, wenn eine Delegatinstanz erstellt wird.

    Ich erstellte also eine Delegatinstanz zu erstellen, aber nun trat dieser Fehler auf:

    Fehler 2 error C3265: Ein verwalteter 'f' kann nicht in einem nicht verwalteten 'boost::detail::thread_data<F>' deklariert werden durch gcroot<> konnte ich auch diesen Fehler beheben, doch nun gibt es folgende Fehlermeldungen:

    Fehler 2 error LNK2022: Fehler bei Metadatenoperation (8013119F) : Es ist ein TypeRef ohne die erforderliche passende TypeDef vorhanden: (dummy): (0x0100002e).

    und

    Fehler 3 error LNK1215: Fehler bei Metadatenoperation (8013119F)

    Ich glaube langsam, es ist gar nicht möglich die Boost Library in C++/CLI einzubinden, zumindest habe ich sowas in der Art gelesen. Deshalb möchte ich jetzt andere Threads verwenden. Ich weiß, dass es im neuen C++11 oder auch C++0x genannt  einen neuen Header <thread> gibt, aber IntelliSence findet ihn bei mir nicht, es scheint also so, als wenn diese Verzeichnisse VS2010 noch nicht bekannt sind. Bei meiner Recherche stieß ich auf keine vernünftige Antwort auf die Frage: Ist es denn möglich die std::threads in VS2010 zu verwenden?

    Ich wäre euch dankbar wenn ihr mir helfen könntet.

    Hefeteig

    Mittwoch, 8. August 2012 10:06

Antworten

Alle Antworten