07.07.2004, 15:47 | #1 |
Участник
|
Variant Array и метод COM обекта
Что надо сделать, чтобы пердать Variant Array как параметр в метод COM обекта?
|
|
07.07.2004, 16:15 | #2 |
Moderator
|
Поиск помнит все: http://www.axforum.info/forums/showt...&threadid=1161
Направление там в принципе правильное, почем не получилось - не знаю. Но смотрите в этом направлении. |
|
07.07.2004, 16:37 | #3 |
Участник
|
ComVariant::createFromArray(),
но массив должен быть одномерным. |
|
07.07.2004, 16:41 | #4 |
Модератор
|
Цитата:
Изначально опубликовано Андре
Поиск помнит все: http://www.axforum.info/forums/showt...&threadid=1161 Направление там в принципе правильное, почем не получилось - не знаю. PHP код:
PHP код:
|
|
08.07.2004, 08:22 | #5 |
Участник
|
2Андре видел я это все и смотрел в этом направлении, но увы...
Вот мой код: PHP код:
Давайте обратимся к описанию метода, который мне нужно вызвать: [id(00000000), propget, vararg, helpcontext(0x00315634)] Cell* Item([in] SAFEARRAY(VARIANT)* idx); Обратите внимание, что idx передается по ссылке - может быть в этом проблема? Например в C# я писал cellSet.get_Item(ref coords) - есть ли какой-нибудь аналог ref в X++? |
|
08.07.2004, 13:44 | #6 |
Участник
|
А если так попробовать?
PHP код:
|
|
08.07.2004, 14:40 | #7 |
Участник
|
Цитата:
Изначально опубликовано dn
А если так попробовать? Да и если верить дебагеру, то действия a = ComVariant::createFromArray(arr); и a.safeArray(arr); эквивалентны. Есть такое ощущение, что Аксапта не корректно отдает массив в COM... |
|
08.07.2004, 14:50 | #8 |
Участник
|
Цитата:
Изначально опубликовано TravellerInTime
Есть такое ощущение, что Аксапта не корректно отдает массив в COM... |
|
08.07.2004, 15:24 | #9 |
Участник
|
Попробую предложить ещё один вариант. За работоспособность правда не ручаюсь
PHP код:
|
|
09.07.2004, 08:11 | #10 |
Участник
|
Цитата:
Изначально опубликовано dn
Возможно, но я в своё время строковый массив передавал в Excel через com. Цитата:
А что если попробовать преобразовать строковый, а не целый (int) массив в вариантный, и передавать его? |
|
09.07.2004, 08:13 | #11 |
Участник
|
Цитата:
Изначально опубликовано dn
Попробую предложить ещё один вариант. За работоспособность правда не ручаюсь |
|
09.07.2004, 11:13 | #12 |
Участник
|
Цитата:
Изначально опубликовано TravellerInTime
А что в описании интерфейса значится: массив строк или массив вариантов? HRESULT _stdcall Value( [in, lcid] long lcid, [out, retval] VARIANT* RHS); [propput, helpcontext(0x00010006)] HRESULT _stdcall Value( [in, lcid] long lcid, [in] VARIANT RHS); p.s. насчет твоего случая у меня идеи закончились... |
|