sciter: проблема с вызовом c++ -> tiscript
От: dr.Benzin  
Дата: 03.03.09 18:38
Оценка: 36 (1)
Не получается вызвать из плюса, tiscript'овую функцию. Для простоты, в качестве плюсового кода использовал исходники сэмпла 'minimal' из Sciter SDK. Модифицировал их следующим образом:

//  LPCBYTE pb = 0;
//  UINT   cb = 0;
//  GetResource(L"default.html",pb,cb);
//  assert( pb && cb );
//  SciterLoadHtml(hwnd, pb,cb, NULL ); 
  SciterLoadFile(hwnd, L"sample.htm");

    std::string functionName("foo");
    tiscript::VM* vm = SciterGetVM(hwnd);
    tiscript::pinned func(vm);
    tiscript::value ns = tiscript::get_global_ns(vm);

    func = tiscript::get_prop(vm, ns, functionName.c_str()); 

    if( !tiscript::is_function(func) ) {
        return NULL;
    }

Код непосредственно вызывающий функцию не привожу, т.к. до него дело не доходит. Т.е. is_function возвращает false. Вот sample.htm:

<html>

<script type="text/tiscript">
function foo() {
    view.msgbox(#info, "foo called");
}
</script>

</html>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.