共用方式為


字串轉換巨集

這些宏提供字串轉換功能。

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

下表列出 DEVMODETEXTMETRIC 字串轉換宏。

DEVMODE 宏觀 TEXTMETRIC 宏觀
DEVMODEA2W TEXTMETRICA2W
DEVMODEOLE2T TEXTMETRICOLE2T
DEVMODET2OLE TEXTMETRICT2OLE
DEVMODEW2A TEXTMETRICW2A

另請參閱

巨集