2013-10-10 12 views
5

Sto progettando un dialogo RTL in VS 2012, e ho inciampato sul seguente errore:errore RC2104: parola chiave non definito o il nome chiave: WS_EX_LAYOUTRTL

error RC2104: undefined keyword or key name: WS_EX_LAYOUTRTL

usare Google per esso hanno dato risultati zero, che è abbastanza raro.

Qualche idea qual è il problema e come può essere risolto?

La definizione di WS_EX_LAYOUTRTL nella finestra di dialogo .rc lo corregge, oltre a sostituire WS_EX_LAYOUTRTL con 0x00400000L, ma ovviamente queste soluzioni non funzionano in quanto il file .rc viene generato automaticamente e le modifiche vengono perse.

+0

Può essere questo articolo MS Dev Center aiuta un po ': [Come garantire testo viene visualizzato con la corretta Direzione di lettura] (http://msdn.microsoft.com/en-us/library/windows/desktop/ee264314%28v=vs.85%29.aspx). – Jost

+1

È necessario impostare correttamente [versione Windows di destinazione] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745%28v=vs.85%29.aspx), WINVER deve essere almeno 0x0500. –

+0

Ho WINVER definito in stdafx.h, ma sembra che non abbia effetto sul file .rc. Definire WINVER nel file .rc funziona, ma non è una soluzione. ... Durante la digitazione del commento, ho scoperto che WINVER dovrebbe essere incluso nelle Definizioni processo per le risorse, che è una scheda separata nelle proprietà della soluzione. Potresti postarlo come risposta, quindi accetterò. – Paul

risposta

3

La risposta è: è necessario definire il valore WINVER appropriato nel file .rc. Poiché il file .rc viene generato automaticamente dall'editor di risorse, non puoi semplicemente definirlo ovunque perché verrà sovrascritto. È possibile utilizzare the TEXTINCLUDE section per evitare che venga sovrascritto.

Esempio (linea 5):

///////////////////////////////////////////////////////////////////////////// 
// 
// Generated from the TEXTINCLUDE 2 resource. 
// 
#define WINVER 0x0500 // <-- ADDED 
#include "afxres.h" 

E (linea 3):

2 TEXTINCLUDE 
BEGIN 
    "#define WINVER 0x0500 // <-- ADDED\r\n" 
    "#include ""afxres.h""\r\n" 
    "\0" 
END