使用 MarshalAsAttribute 屬性
更新:2007 年 11 月
您可以使用 MarshalAsAttribute 屬性 (Attribute),自訂封送處理 (Marshaling) 行為。例如,您可以進行下列工作:
在結構中封送處理陣列和字串
提供所需的彈性,以支援通用 COM Interop 案例
透過平台叫用和 vtable 封送處理器 (相較於 IDispatch 封送處理器而言) 提供封送處理型別的一致性
下表將針對 UnmanagedType 列舉型別中的值,說明封送處理支援。
Unmanaged 型別 |
型別有效的情況 |
結構是否支援 |
---|---|---|
BStr, TBStr |
||
LPWStr, LPStr, LPTStr |
是 |
|
IUnknown |
是 |
|
IDispatch |
是 |
|
ByValTStr |
String (僅限於結構中) |
是 |
ByValArray |
任何陣列 |
是 |
SafeArray |
任何陣列 |
是 |
VBByRefStr |
||
Bool |
整數型別 |
|
I1, I2, I4 |
適當長度的整數型別 |
|
U1, U2, U4 |
適當長度且不帶正負號的整數型別 |
|
I8 |
N/A |
|
U8 |
N/A |
|
R4 |
4 個位元組的實數 |
|
R8 |
8 個位元組的實數 |
|
Struct |
||
Interface |
||
SysInt, SysUInt |
適當正負號和長度的整數型別 |
|
AnsiBStr |
N/A |
|
VariantBool |
||
FunctionPtr |
N/A |
|
AsAny |
N/A |
|
LPArray |
N/A |
|
LPStruct |
N/A |
|
Error |
4 個位元組的整數 |
|
Currency |