|
|
От: |
VladD2
|
www.nemerle.org |
| Дата: | 10.11.04 11:08 | ||
| Оценка: | |||
http://www.optim.ru/cs/2001/3/2net/2net.aspSafeArray
При импорте SafeArray из библиотеки типов в сборку .NET, массив конвертируется в одномерный массив известного типа (т.е. int[]). К элементам массива применяются те же правила конвертации типов, что и к параметрам. Так, например, SafeArray элементов типа BSTR становится управляемым массивом элементов типа String, а SafeArray из Variant'ов становится управляемым массивом элементов типа Object. Тип элементов SafeArray захватывается в именованный аргумент SafeArraySubType, передаваемый атрибуту MarshalAs, применяемому к параметру.
Поскольку размерность и границы массива нельзя узнать из библиотеки типов, размерность принимается за 1, а нижняя граница – за 0. Размерность и границы должны быть указаны в managed signature, создаваемой TlbImp. Если...
void New3([MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VT_BSTR)]ref String[] ar);