封送字符串

更新:2007 年 11 月

平台调用复制字符串参数,并在必要时将其从 .NET Framework 格式 (Unicode) 转换为非托管格式 (ANSI)。由于托管字符串是不可变的,因此当函数返回时,平台调用不会将它们从非托管内存复制回托管内存。

下表列出了字符串的封送处理选项,描述了它们的用法,并提供了到相应的 .NET Framework 示例的链接。

字符串

说明

示例

通过值传递。

将字符串作为 In 参数传递。

MsgBox

作为结果。

从非托管代码返回字符串。

Strings

通过引用传递。

使用 StringBuilder 将字符串作为 In/Out 参数传递。

Buffers

在结构中通过值传递。

在作为 In 参数的结构中传递字符串。

结构

在结构中通过引用传递 (char*)

在作为 In/Out 参数的结构中传递字符串。非托管函数需要指向字符缓冲区的指针,并且缓冲区大小是结构的成员。

Strings

在结构中通过引用传递 (char[])

在作为 In/Out 参数的结构中传递字符串。非托管函数需要嵌入的字符缓冲区。

OSInfo

在类中通过值传递 (char*)

在作为 In/Out 参数的类中传递字符串。非托管函数需要指向字符缓冲区的指针。

OpenFileDlg

在类中通过值传递 (char[])

在作为 In/Out 参数的类中传递字符串。非托管函数需要嵌入的字符缓冲区。

OSInfo

作为通过值传递的字符串数组。

创建通过值传递的字符串数组。

数组

作为包含通过值传递的字符串的结构数组。

创建包含字符串的结构数组,并且该数组是通过值传递的。

数组

请参见

概念

平台调用数据类型

封送类、结构和联合

封送类型数组

其他封送处理示例

其他资源

用平台调用封送数据