字串轉換巨集
這些宏提供字串轉換功能。
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 |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應