Ser*_*gey 5 c# dll native-methods marshalling
我们何时应该使用此属性,为什么需要它?例如,如果c中的本机函数将指向unsigned char的指针作为参数,并且我知道需要实现无符号字符数组,为什么我不能在C#中使用字节数组来使用此函数?是否有必要进行编组?
在大多数情况下,运行时将能够自动确定如何在本机代码和托管代码之间编组数据,因此通常不需要指定该属性.MarshalAs只有在定义中存在歧义(并且您希望告诉运行时精确地如何编组数据)或者您需要非默认行为时才需要.
根据我的经验,MarshalAs只有在使用字符串时才真正需要,因为本机代码中有很多不同的表示形式; unicode/ansi,c-strings与否等
| 归档时间: |
|
| 查看次数: |
3645 次 |
| 最近记录: |