Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

MSScriptControl   Найти похожие ветки 

 
Michail Dalakov ©   (2004-03-16 01:38) [0]

Кто работал с MSScriptControl подскажите как правильно из скрипта вызвать ф-ию COM-объекта имеющую несколько параметров, при вызове ф-ии имеющую один параметр все OK! При вызове ф-ии с
большим числом параметров возникает ошибка о недопустимом использовании скобок, ???


 
Michail Dalakov ©   (2004-03-16 17:37) [1]

Видимо никому не понадобилось, но все же, хоть какие нибудь предположения...
Помнится как то пробовал вызывть ф-ии из dll прямо из командной строки, так вот там ограничения точно были, может быть здесть тоже что то есть
Хотя контрол является Microsoft-овским и находится в msscript.ocx
никакого описания нигде найти не мог, даже в MSDN


 
Плохиш   (2004-03-16 17:45) [2]

И здесь тоже искал?
http://search.yahoo.com/search?p=use+msscript.ocx&ei=UTF-8&fr=fp-tab-web-t&n=20&fl=0&x=wrt


 
jack128 ©   (2004-03-16 17:47) [3]

У Анатолия Подгоретского на сайте была статья Тенцера по скриптконтролу. Посмотри, авось чего почерпнешь..


 
nikkie ©   (2004-03-16 18:13) [4]

имхо, если "возникает ошибка о недопустимом использовании скобок", то скобки надо убрать.


 
Michail Dalakov ©   (2004-03-16 18:33) [5]

Привожу кусок скрипта

 with ao
    .conffilename="client\MainServerProcess.xml"
    .alias="MSDB2004"
    .Build("BuildFileName=MainServerBuild.xml",UnitsID)
    .SendData("ReadyFileName")  
 end with

ao - объект автоматизации создается в программе
var
 ao:IDispatch;
begin
 ao:=CreateOleObject("Sync.AO");
 sc.AddObject("ao",ao,false);
....

Так вот на методе  
.Build("BuildFileName=MainServerBuild.xml",UnitsID)

exception class EOleException with message "Недопустимо использование скобок при вызове процедуры Sub". Process stopped.


 
just me   (2004-03-16 18:47) [6]

ИМНО вместо Build("BuildFileName=MainServerBuild.xml",UnitsID) нужно писать Build "BuildFileName=MainServerBuild.xml", UnitsID


 
Плохиш   (2004-03-16 18:52) [7]


> Так вот на методе  
> .Build("BuildFileName=MainServerBuild.xml",UnitsID)

Какое отношение эта запись имеет к делфи?


 
Michail Dalakov ©   (2004-03-16 19:04) [8]

На
Build "BuildFileName=MainServerBuild.xml", UnitsID

exception class EOleException with message "Несоответствие типа: "Build". Process stopped.

вылетает в MSScriptControl_TLB на

function TScriptControl.Run(const ProcedureName: WideString; var Parameters: PSafeArray): OleVariant;
begin
 Result := DefaultInterface.Run(ProcedureName, Parameters);
end;


 
Michail Dalakov ©   (2004-03-16 19:10) [9]

To Плохиш (16.03.04 18:52) [7]

А для чего вообще нужна возможность встраивать интерпретатор какого нибудь языка в свою программу?


 
Плохиш   (2004-03-16 19:19) [10]

>Michail Dalakov ©   (16.03.04 19:10) [9]

Использование OLE-объектов не отменяет требования к синтаксису языка в котором они используются!


ao.Build("BuildFileName=MainServerBuild.xml",UnitsID);


 
Michail Dalakov ©   (2004-03-16 19:38) [11]

To Плохиш   (16.03.04 19:19) [10]

Это ты приводишь пример вызова на Delphi

А когда ты выполняешь скрипт (который грузишь, например из какого нибудь файла), то твои вызовы в скрипте

.Build("BuildFileName=MainServerBuild.xml",UnitsID)

транслируются в вызовы реального объекта, в данном случае интерпретатор не понимает, что означает
.Build("BuildFileName=MainServerBuild.xml",UnitsID)
почему не известно,
если переписать ф-ию например в виде
.Build("BuildFileName=MainServerBuild.xml$$$UnitsID") то здесь интерпритатор отрабатывает нормально

Так вот вопрос в чем же все таки проблема, в ограничении интерпретатора одним передаваемым параметром или неправильным указанием того, что он должен интерпретировать?


 
just me   (2004-03-16 20:00) [12]

Еще раз повторю - скобки при вызове функций в скрипте не нужны. См. например MSDN->Knowledge base->Visual Basic->Visual Basic for Windows->HOWTO: Call Functions Using the Script Control
Возможно нужно вызывать так:
Build "MainServerBuild.xml", UnitsID


 
just me   (2004-03-16 20:04) [13]

Еще раз повторю - скобки при вызове функций в скрипте не нужны. См. например MSDN->Knowledge base->Visual Basic->Visual Basic for Windows->HOWTO: Call Functions Using the Script Control
Возможно нужно вызывать так:
Build "MainServerBuild.xml", UnitsID


 
nikkie ©   (2004-03-16 21:44) [14]

>Еще раз повторю - скобки при вызове функций в скрипте не нужны.
как раз при вызове функции нужны. не нужны при вызове процедуры.
впрочем, в этом HOWTO написано, что если функция вызывается как процедура, то тоже скобки не нужны. странный язык vb...



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.031 c
3-1078404138
AlexA
2004-03-04 15:42
2004.04.04
как в run-time создать обработчик CalcFields


1-1079371283
$tranger
2004-03-15 20:21
2004.04.04
Защита программы


1-1079101806
h010d
2004-03-12 17:30
2004.04.04
Влияние оформления windows на отображение формы


14-1078935501
juiceman
2004-03-10 19:18
2004.04.04
справочник WinApi


14-1078999856
one-off-job
2004-03-11 13:10
2004.04.04
Требуется программист/программисты для удаленной работы.