Показать сообщение отдельно
Старый 29.01.2007, 20:17   #14  
Dimonishe is offline
Dimonishe
Участник
 
33 / 10 (1) +
Регистрация: 24.05.2005
Адрес: Донецк/Москва
сейчас вот тоже страдаю с этим же самым COM объектом. Спасибо большое. Сэкономили кучу времени и нервов. Потому как linkTest у меня тоже не работал.

Только вот теперь другая проблема.. Пытаемся добавить запись. Описание функции из VBA

Function AddRecord(nTsdFieldCount As Integer, Field1, Field2, Field3, Field4, Field5, Field6, Field7, Field8) As Integer

есстественно вот это не работает

X++:
com.AddRecord(3,"123","1","0")
Метод 'AddRecord' в COM-объекте класса 'ScCt.Cpt' возвратил код ошибки 0x80020005 (DISP_E_TYPEMISMATCH), который означает: Один или большее количество аргументов не мог быть преобразовано.


похоже придется опять что-то шаманить с variantom.

навскидку

X++:
    ComVariant  var2 = new ComVariant(ComVariantInOut::In, ComVariantType::VT_Variant);
    ComVariant  var3 = new ComVariant(ComVariantInOut::In, ComVariantType::VT_INT);

    var3.int(3);
    var2.variant(var3);
    Cpt.AddRecord(var2,"1","0");
не прошло...


теперь вот думаю как получить IDL прототипа? а?