marshal_as

此方法将在本机和托管环境之间封送数据。

To_Type marshal_as<To_Type>(
   From_Type input 
);

参数

  • [in] input
    要封送到 To_Type 变量的值。

返回值

是 input的转换的值类型 To_Type 的变量。

备注

此方法是一个简化的方式将本机之间的数据和托管类型。 若要确定哪些数据类型支持,请参见 将概述在C++。 某些数据转换需要上下文。 使用 marshal_context 类,可以将这些数据类型。

如果您尝试安排的数据类型匹配,不支持 marshal_as 将生成错误 C4996 在编译时。 读取消息提供了此错误有关更多信息。 C4996 错误可能获得更多的已弃用函数生成。 此的示例尝试安排的数据类型匹配不受支持。

封送处理库包括几个头文件。 所有转换只需要一个文件,但是,可以包含其他文件,如果您为其他转换需要。 若要查看哪些转换关联文件,查找在 Marshaling Overview的表中。 无论将为此,命名空间要求始终是有效的。

示例

const char* 的此示例送到 System::String 变量类型。

// marshal_as_test.cpp
// compile with: /clr
#include <stdlib.h>
#include <string.h>
#include <msclr\marshal.h>

using namespace System;
using namespace msclr::interop;

int main() {
   const char* message = "Test String to Marshal";
   String^ result;
   result = marshal_as<String^>( message );
   return 0;
}

要求

头文件: <msclr \ marshal.h>, <msclr \ marshal_windows.h>、 <msclr \ marshal_cppstd.h>或 <msclr \ marshal_atl.h>

命名空间: msclr::interop

请参见

参考

marshal_context 类

概念

将概述在C++