21.02.2008, 18:20 | #10 |
Участник
|
Если у кого-то возникнет похожая проблема, то решение найдено (не прошло и года ). Основные причины следующие:
1. При передаче значений, отличных от целочисленных, в методы объектов Word желательно оборачивать их в класс COMVariant(). Т.е. передавать в качестве параметра не строку, а объект. Следует обратить внимание на методы создания нового документа на базе шаблона и работу с полями Word. Например, создание документа на базе шаблона: X++: COM comDocuments; COMVariant varTemlateName; ; (...) if (_template) { varTemlateName = new COMVariant(COMVariantInOut::IN, COMVariantType::VT_BSTR); varTemlateName.bStr(_template); m_comDocument = comDocuments.Add(varTemlateName); } else { m_comDocument = comDocuments.Add(); } (...) 2. Следует избегать сложных "вложенных" функций с включением обращений к свойствам Com объектов. Например, высока вероятность ошибки при использовании такого синтаксиса X++: if (str2num(m_comApplication.version()) >= 9) X++: numVersion = str2num(m_comApplication.version());
if (numVersion >= 9) Короче, на терминалке "халява" - не проходит. Необходимо более строго следить за синтаксисом. |
|
|
За это сообщение автора поблагодарили: russ (1), kashperuk (5), Logger (5), alex55 (1), plumbum (1). |