Schalten Sie die clr-option für header-Datei mit std::mutex

Habe ich ein Visual Studio-Projekt enthält Dateien mit verwaltetem code und Dateien mit nicht verwaltetem code. Das Projekt hat die CLR-Unterstützung, aber wenn ich eine Datei hinzufügen, wo ich nicht brauchen .Ich NET einfach ausschalten /crl-option mit der rechten Maustaste auf die Datei:

Schalten Sie die clr-option für header-Datei mit std::mutex

Ich habe eine Klasse, die hat zu enthalten, die verwalteten code und die Verwendung von std::mutex.

//Foo.h
class Foo
{
   std::mutex m;
}

Bekam ich die folgende Fehlermeldung nach dem kompilieren:

error C1189: #error : wird nicht unterstützt, wenn das kompilieren mit
/clr oder /clr:pure.

Das problem ist, dass ich nicht die option zum ausschalten der clr-header-Dateien (.h), denn dies ist das Fenster, wenn ich mit der rechten Maustaste auf eine .h-Datei:

Schalten Sie die clr-option für header-Datei mit std::mutex

Wie kann ich dieses problem beheben?

  • Meine Kristallkugel sagt, dass es keine gute Idee war, um diese Klasse in einem .h-Datei. Weil Sie auch #inklusive es einen ein .cpp-Datei, das kompilieren mit /clr-in-Effekt. Vermeiden Sie es, Klasse Einbauten mit einer Schnittstelle.
  • ja, ich habe die .cpp-Datei, enthält Foo.h. Wo genau soll ich verschieben Sie alle Klassen enthalten, die in cpp-Dateien, in denen ich deaktiviert die clr-option?
InformationsquelleAutor Nick | 2015-07-11
Schreibe einen Kommentar