2012-11-27 3 views
6

capisco utilizzando la direttiva NETFX_CORE, in questo modo:Se NETFX_CORE è per Windows 8, cosa è per Windows Phone 8?

#if NETFX_CORE 
    // Windows 8 
#else 
    // Windows Phone 8 
#endif 

Maggiori informazioni: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj714084(v=vs.105).aspx

Ma esiste una direttiva specifica a Windows Phone 8?

+1

Il collegamento è per lo sviluppo NET, ma la domanda wasn t taggato in entrambi i modi. Ho ragione che questo è principalmente su .NET? Lo sviluppo nativo avrà diverse definizioni. –

+0

Um, NETFX_CORE in qualche modo implica la tecnologia, scusate se vi siete persi. –

risposta

9

Sì, la direttiva Windows Phone è:

#if WINDOWS_PHONE 

Questo è documentato here, ma io sono sorpreso che non è menzionato here. Ho anche provato questo in qualche codice, e funziona.

+0

E per i progetti di targeting ** Windows 8.1 ** e ** Windows Phone 8.1 ** questi saranno 'WINDOWS_APP' e' WINDOWS_PHONE_APP'. – Sevenate

1

Per quanto ne so, non esiste tale direttiva. Ma è possibile utilizzare se non:

#if !NETFX_CORE 
    // Windows Phone 8 
#endif 
+1

Haha! Non esattamente quello che intendevo, ma è divertente. –

0

Ma esiste una direttiva specifica per Windows Phone 8?

È possibile definire le proprie direttive per il preprocessore che si conoscono. WINDOWS_PHONE è appena stato definito dai modelli di progetto di Visual Studio per i progetti Windows Phone.

stesso vale per DEBUG, TRACE e qualunque quelli personalizzati si potrebbe avere come EXTENSIVE_LOGGING o LOOKING_FOR_A_CATBUS

4

WP8 dovrebbe utilizzare bandiere di compilazione condizionale personalizzato introdotte dallo sviluppatore. Maggiori informazioni su questo argomento esatto here. Nokia ha un intero articolo dedicato a coding for both WP7 and WP8 e consiglio vivamente di approfondire tutte le tecniche per vedere qual è il migliore da usare.

Definizione simbolo compilazione condizionale:

  1. Fare clic destro sul progetto WP 8 e selezionare Proprietà. Aprire
  2. Creare la pagina di Project Designer e inserire WP8 in simboli di compilazione condizionale . Dopo questo, essi dovrebbero contenere qualcosa come questo: SILVERLIGHT; WINDOWS_PHONE; WP8

Ed ecco il codice inline di esempio

// Separate implementations for different OS versions 
#if WP8 
    // code using enhancements introduced in Windows Phone 8 
#else 
    // code using Windows Phone OS 7.1 features 
#endif 


// A new Windows Phone 8 feature 
#if WP8 
    // code using new Windows Phone 8 feature 
#endif 
+0

puoi aiutarmi per favore ho lo stesso problema http://stackoverflow.com/questions/22094143/macros-in-prefix-pch-file-equivalent-in-wp8 – user2056563

+0

Intendi # UNITY_WP8 o è WP8 diverso? Se si intendeva UNITY_WP8, questo non è corretto come dovrebbe essere WINDOWS_PHONE: http://forum.unity3d.com/threads/whats-the-difference-between-if-unity_wp8-and-if-windows_phone.221061/ – ickydime

+0

Inoltre, quei collegamenti non funzionano più. : / – ickydime