Re[3]: Jscript Array -> ? Тип .NET
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.11.04 11:08
Оценка:
Здравствуйте, hydralisk, Вы писали:

VD>>Jscript то Jscript.Net или WSH? Если WSH, то это COM-овские массивы (скорее всего SAFEARRAY). Соотвесвтенно с про интероп с ними информацию и ищи.

H>Обычный JavaScript, не .NET

SafeArray
При импорте SafeArray из библиотеки типов в сборку .NET, массив конвертируется в одномерный массив известного типа (т.е. int[]). К элементам массива применяются те же правила конвертации типов, что и к параметрам. Так, например, SafeArray элементов типа BSTR становится управляемым массивом элементов типа String, а SafeArray из Variant'ов становится управляемым массивом элементов типа Object. Тип элементов SafeArray захватывается в именованный аргумент SafeArraySubType, передаваемый атрибуту MarshalAs, применяемому к параметру.

Поскольку размерность и границы массива нельзя узнать из библиотеки типов, размерность принимается за 1, а нижняя граница – за 0. Размерность и границы должны быть указаны в managed signature, создаваемой TlbImp. Если...

http://www.optim.ru/cs/2001/3/2net/2net.asp

MarshalAs SAFEARRAY

Наприер:
void New3([MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VT_BSTR)]ref String[] ar);


Короче нужно смотреть, что возвращает ImportData. Можно попробовать следующее. Объявить аргумент как object и под отладчиком поглядеть, что там за вигня валяется. Боюсь, что JScript как всегода использует какие-то хэлперы.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.