封送處理字串
平台叫用會複製字串參數,並視需要從 .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 |
作為傳值字串陣列。 | 建立以傳值方式傳遞的字串陣列。 | 陣列 |
作為包含傳值字串的結構陣列。 | 建立包含字串的結構陣列,並以傳值方式傳遞該陣列。 | 陣列 |