Re: sciter: проблема с вызовом c++ -> tiscript
От: c-smile Канада http://terrainformatica.com
Дата: 04.03.09 06:53
Оценка:
Здравствуйте, dr.Benzin, Вы писали:

DB>Не получается вызвать из плюса, tiscript'овую функцию. Для простоты, в качестве плюсового кода использовал исходники сэмпла 'minimal' из Sciter SDK. Модифицировал их следующим образом:

...

Дело в том что global namespace (tiscript::get_global_ns(vm))
это не то место где живут объекты загруженного документа.

При загрузке документа для него создается свой namespace (что есть обычный объект — "вешалка")
В этом ns живут такие объекты как self и view.

Проблема в том что я забыл выставить наружу метод:
SCDOM_RESULT SCAPI SciterGetElementNamespace(  HELEMENT he, tiscript_value* pval);


Завтра буду делать билд — появится.

Последовательность такая:

    SciterLoadFile(hwnd, L"sample.htm");
    HELEMENT root = dom::element::root_element(hwnd);

    std::string functionName("foo");
    tiscript::VM* vm = SciterGetVM(hwnd);
    tiscript::pinned func(vm);
    tiscript::value ns; SciterGetElementNamespace(root,&ns);
    ....
    func = tiscript::get_prop(vm, ns, functionName.c_str());
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.