字串轉換巨集
這些宏提供字串轉換功能。
ATL 和 MFC 字串轉換宏
這裡討論的字串轉換巨集對於 ATL 及 MFC 而言都有效。 如需 MFC 字串轉換的詳細資訊,請參閱 TN059:使用 MFC MBCS/Unicode 轉換宏和 MFC 宏和全域。
DEVMODE 和 TEXTMETRIC 字串轉換宏
這些宏會建立 DEVMODE 或 TEXTMETRIC 結構的複本,並將新結構內的字串轉換成新的字串類型。 宏會為新結構配置堆疊上的記憶體,並傳回新結構的指標。
MACRONAME( address_of_structure )
備註
例如:
DEVMODEW* lpw = DEVMODEA2W(lpa);
以及:
TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);
在巨集名稱中,來源結構中的字串類型位於左側(例如 A),而目的地結構中的字串類型位於右側(例如 W)。 代表 LPSTR、 OLE 代表 LPOLESTR、 T 代表 LPTSTR,而 W 代表 LPWSTR。
因此,DEVMODEA2W將具有 LPSTR 字串的結構複製到 DEVMODE
具有 LPWSTR 字串 DEVMODE
的結構中,TEXTMETRICOLE2T將具有 LPOLESTR 字串的結構複製到 TEXTMETRIC
具有 LPTSTR 字元串 TEXTMETRIC
的結構中等等。
結構中轉換的 DEVMODE
兩個字串是裝置名稱 (dmDeviceName
) 和表單名稱 (dmFormName
)。 DEVMODE
字串轉換宏也會更新結構大小 (dmSize
)。
結構中轉換的 TEXTMETRIC
四個字串是第一個字元 (tmFirstChar
)、最後一個字元 (tmLastChar
)、預設字元 (tmDefaultChar
),以及斷字元 (tmBreakChar
)。
和 TEXTMETRIC
字串轉換宏的行為DEVMODE
取決於作用中的編譯程式指示詞,如果有的話。 如果來源與目的類型相同,則不會發生轉換。 編譯程式指示詞會變更 T 和 OLE ,如下所示:
作用中的編譯器指示詞 | T 變為 | OLE 變為 |
---|---|---|
none | A | W |
_UNICODE | W | W |
OLE2ANSI | A | A |
_UNICODE和OLE2ANSI | W | A |
下表列出 DEVMODE
和 TEXTMETRIC
字串轉換宏。
DEVMODE 巨集 |
TEXTMETRIC 巨集 |
---|---|
DEVMODEA2W | TEXTMETRICA2W |
DEVMODEOLE2T | TEXTMETRICOLE2T |
DEVMODET2OLE | TEXTMETRICT2OLE |
DEVMODEW2A | TEXTMETRICW2A |