Macro di conversione di stringhe
Queste macro forniscono funzionalità di conversione di stringhe.
Macro di conversione di stringhe ATL e MFC
Le macro di conversione di stringhe presentate in questo argomento sono valide sia per ATL che per MFC. Per altre informazioni sulla conversione di stringhe MFC, vedere TN059: Using MFC MBCS/Unicode Conversion Macros and MFC Macros and Globals.For more information on MFC string conversion conversion, see TN059: Using MFC MBCS/Unicode Conversion Macros and MFC Macros and Globals.
Macro di conversione di stringhe DEVMODE e TEXTMETRIC
Queste macro creano una copia di una struttura DEVMODE o TEXTMETRIC e convertono le stringhe all'interno della nuova struttura in un nuovo tipo di stringa. Le macro allocano memoria nello stack per la nuova struttura e restituiscono un puntatore alla nuova struttura.
MACRONAME( address_of_structure )
Osservazioni:
Ad esempio:
DEVMODEW* lpw = DEVMODEA2W(lpa);
e:
TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);
Nei nomi delle macro, il tipo stringa nella struttura di origine si trova a sinistra (ad esempio, A) e il tipo stringa nella struttura di destinazione è a destra (ad esempio, W). Un acronimo di LPSTR, OLE sta per LPOLESTR, T sta per LPTSTR e W è l'acronimo di LPWSTR.
Pertanto, DEVMODEA2W copia una DEVMODE
struttura con stringhe LPSTR in una DEVMODE
struttura con stringhe LPWSTR, TEXTMETRICOLE2T copia una TEXTMETRIC
struttura con stringhe LPOLESTR in una TEXTMETRIC
struttura con stringhe LPTSTR e così via.
Le due stringhe convertite nella DEVMODE
struttura sono il nome del dispositivo (dmDeviceName
) e il nome del modulo (dmFormName
). Le DEVMODE
macro di conversione delle stringhe aggiornano anche le dimensioni della struttura (dmSize
).
Le quattro stringhe convertite nella TEXTMETRIC
struttura sono il primo carattere (tmFirstChar
), l'ultimo carattere (tmLastChar
), il carattere predefinito (tmDefaultChar
) e il carattere di interruzione (tmBreakChar
).
Il comportamento delle macro di conversione di DEVMODE
stringhe e TEXTMETRIC
dipende dalla direttiva del compilatore, se presente. Se i tipi di origine e di destinazione sono uguali, la conversione non viene eseguita. Le direttive del compilatore modificano T e OLE come indicato di seguito:
Direttiva del compilatore attiva | T diventa | OLE diventa |
---|---|---|
Nessuno | A | W |
_UNICODE | W | W |
OLE2ANSI | A | A |
_UNICODE e OLE2ANSI | W | A |
Nella tabella seguente sono elencate le macro di conversione di DEVMODE
stringhe e TEXTMETRIC
.
DEVMODE macro |
TEXTMETRIC macro |
---|---|
DEVMODEA2W | TEXTMETRICA2W |
DEVMODEOLE2T | TEXTMETRICOLE2T |
DEVMODET2OLE | TEXTMETRICT2OLE |
DEVMODEW2A | TEXTMETRICW2A |