Главная страница
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.029 c
14-1078650793
blackman
2004-03-07 12:13
2004.04.04
Вчера Михаилу Жванецкому исполнилось 70


4-1074747529
GrayFace
2004-01-22 07:58
2004.04.04
Как делать сервисы? Они запускаются до входа в систему?


14-1078773542
Gero
2004-03-08 22:19
2004.04.04
Бот для форума


1-1079640601
Ignoramus
2004-03-18 23:10
2004.04.04
Проблема с MDI окнами


1-1079610622
for___
2004-03-18 14:50
2004.04.04
Как в Treeview узнать...