2012-04-02 2 views
12

Vorrei che le intestazioni C++/CLI si compilassero anche quando si trovano sotto un'altra piattaforma. Naturalmente non mi aspetto di compilarli ma semplicemente li ignoro.Trova a livello di programmazione se in C++ o C++/CLI

Sarebbe appropriato? (_MSC_VER)

#ifdef _MSC_VER 

    using namespace System; 

     namespace ENMFP { 

      public ref struct Data { 
      }; 
     } 

#endif 

Grazie!

risposta

14

È possibile utilizzare il __cplusplus_cli macro predefinita documentato here:

#ifdef __cplusplus_cli 

using namespace System; 

namespace ENMFP 
{ 
    public ref struct Data 
    { 
     // ... 
    }; 
} 

#endif // __cplusplus_cli 
+0

Grazie, che è perfetto! – Aybe

+0

Scusate ma ho parlato troppo velocemente, non ha funzionato, tuttavia _MANAGED funziona. – Aybe

+0

@Aybe, è strano, entrambe le macro dovrebbero essere definite se è specificata l'opzione '/ clr'. Stai forse usando '/ clr: oldSyntax'? In tal caso, hai come target Managed C++, non C++/CLI :) –