分享方式:


封送處理字串

平台叫用會複製字串參數,並視需要從 .NET Framework 格式 (Unicode) 轉換成 Unmanaged 格式 (ANSI)。 傳回函式時,因為 Managed 字串不可變,所以平台叫用不會將 Managed 字串從 Unmanaged 記憶體複製回 Managed 記憶體。

下表列出字串的封送處理選項,並描述其用法,以及提供對應 .NET Framework 範例的連結。

String 描述 範例
傳值。 將字串傳遞為 In 參數。 MsgBox
作為結果。 從 Unmanaged 程式碼傳回字串。 字串
傳址。 使用 StringBuilder 將字串傳遞為 In/Out 參數。 緩衝區
在傳值結構中。 透過本身為 In 參數的結構傳遞字串。 結構
在藉傳址結構中 (char*) 透過本身為 In/Out 參數的結構傳遞字串。 Unmanaged 函式需要字元緩衝區的指標,而且緩衝區大小是結構的成員。 字串
在傳址結構中 (char[]) 透過本身為 In/Out 參數的結構傳遞字串。 Unmanaged 函式需要內嵌的字元緩衝區。 OSInfo
在依值類別中 (char*) 在類別中傳遞字串 (類別是 In/Out 參數)。 Unmanaged 函式需要字元緩衝區的指標。 OpenFileDlg
在傳值類別中 (char[]) 在類別中傳遞字串 (類別是 In/Out 參數)。 Unmanaged 函式需要內嵌的字元緩衝區。 OSInfo
作為傳值字串陣列。 建立以傳值方式傳遞的字串陣列。 陣列
作為包含傳值字串的結構陣列。 建立包含字串的結構陣列,並以傳值方式傳遞該陣列。 陣列

另請參閱