http://msdn.microsoft.com/zh-cn/windows/hardware/e8w969hb(v=vs.71)
平臺調用複製字符串參數,並在必要時將其從 .NET Framework 格式 (Unicode) 轉換爲非託管格式 (ANSI)。 由於託管字符串是不可變的,因此當函數返回時,平臺調用不會將它們從非託管內存複製回託管內存。
下表列出了字符串的封送處理選項,描述了它們的用法,並提供了到相應的 .NET Framework 示例的鏈接。
String |
說明 |
示例 |
---|---|---|
通過值傳遞。 |
將字符串作爲 In 參數傳遞。 |
|
作爲結果。 |
從非託管代碼返回字符串。 |
|
通過引用傳遞。 |
使用 StringBuilder 將字符串作爲 In/Out 參數傳遞。 |
|
在結構中通過值傳遞。 |
在作爲 In 參數的結構中傳遞字符串。 |
|
在結構中通過引用傳遞(char*)。 |
在作爲 In/Out 參數的結構中傳遞字符串。 非託管函數需要指向字符緩衝區的指針,並且緩衝區大小是結構的成員。 |
|
在結構中通過引用傳遞(char[])。 |
在作爲 In/Out 參數的結構中傳遞字符串。 非託管函數需要嵌入的字符緩衝區。 |
|
在類中通過值傳遞 (char*)。 |
在作爲 In/Out 參數的類中傳遞字符串。 非託管函數需要指向字符緩衝區的指針。 |
|
在類中通過值傳遞(char[])。 |
在作爲 In/Out 參數的類中傳遞字符串。 非託管函數需要嵌入的字符緩衝區。 |
|
作爲通過值傳遞的字符串數組。 |
創建通過值傳遞的字符串數組。 |
|
作爲包含通過值傳遞的字符串的結構數組。 |
創建包含字符串的結構數組,並且該數組是通過值傳遞的。 |