MarshalAs:指示如何在托管代码和非托管代码之间封送数据。
1.
源代码编译为托管代码;(所以源代码可以有很多种,如VB,C#,J#)
2.托管代码编译为microsoft系统的.net平台专用文件(如类库、
可执行文件等)。
使用方法:
[MarshalAs(UnmanagedType unmanagedType, 命名参数)]
实际上相当于构造一个MarshalAsAttribute类的对象
UnmanagedType 枚举:指定如何将参数或字段封送到非托管代码。
成员
|
成员名称 | 说明 |
---|---|---|
![]() |
AnsiBStr | 长度前缀为单字节的 ANSI 字符串。可以在 String 数据类型上使用此成员。 |
![]() |
AsAny | 一个动态类型,将在运行时确定对象的类型,并将该对象作为所确定的类型进行封送处理。仅对平台调用方法有效。 |
![]() |
Bool | 4 字节布尔值(true != 0、false = 0)。这是 Win32 BOOL 类型。 |
![]() |
BStr | 长度前缀为双字节的 Unicode 字符串。可以在 String 数据类型上使用此成员(它是 COM 中的默认字符串)。 |
![]() |
ByValArray | 当 |