Код: Выделить всё
com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: Pad
Description: 80020003 / Mitglied nicht gefunden.
Код: Выделить всё
public void setIndexedProperty(final String propertyName, final Variant[] indexes,
final Variant propValue) {
Variant[] parameters = new Variant[indexes.length + 1];
for (int i = 0; i < indexes.length; i++) {
parameters[i] = indexes[i];
}
parameters[indexes.length] = propValue;
Dispatch.invokev(activeXComponent, propertyName, Dispatch.Put, parameters,
new int[parameters.length]);
}
Код: Выделить всё
ActiveXComponent pad = ... //Result of an other method;
padstack.setIndexedProperty("pad",new Variant[] { new Variant(-1)}, new Variant(pad) );
Я создал сценарий vbs, чтобы проверить, существует ли общая проблема с кодом. Это дает ожидаемый результат (свойство установлено).
Код: Выделить всё
...
set pad = padstackDBObj.NewPad()
...
set padstack = padstackDBObj.NewPadstack()
set padstack.pad(-1)=pad
...
Я также могу запросить текущий контактную площадку( -1) свойство объекта Padstack успешно.
Я поигрался с типом передаваемого параметра. Я пробовал длинные, короткие, байтовые и строковые значения, но получил ту же ошибку.
Я без проблем установил индексированные свойства в нескольких других местах. Новым в этом случае является то, что параметр является отрицательным целым числом, а значением является объект. Так что один из них может вызвать проблему.
Подробнее здесь: https://stackoverflow.com/questions/787 ... -not-found