Конференция "Corba" » out BSTR* - я туплю или нет? [Delphi, Windows]
 
  • SPeller © (16.02.09 11:29) [0]
    Прошу не пинать если вопрос глупый. С АктивХ никогда не работал, а тут понадобилось. Есть такой метод в моем интерфейсе:
       HRESULT _stdcall IntegrityCheck([out] BSTR * LogStr, [out, retval] long * Res );


    В дельфи транслируется так:
       function IntegrityCheck(out LogStr: WideString): Integer; dispid 210;


    Суть в том, что хочу возвращать в качестве результата некое число, и при необходимости заполнять своими данными строку, переданную в качестве параметра. Использую в JScript так:

    var obj = new ActiveXObject("MYLib.IntegrityCheckerTest");
    var str = "test";
    var i = obj.IntegrityCheck(str);
    WScript.Echo(str + " " + i);



    Но переменная str не меняет своего значения как хотелось бы. Если поменять на [in, out]/var, то получаю "test" внутри интерфейса, а вот обратно всё-равно никак. Что я делаю не так? Подозреваю что не знаю какого-то нюанса, а какого - не пойму.
  • clickmaker © (16.02.09 11:52) [1]
    obj.IntegrityCheck(&str); ?
  • SPeller © (17.02.09 00:48) [2]
    амперсанд синтаксическую ошибку выдает.
  • Palladin © (17.02.09 09:06) [3]
    будем надеятся, что clickmaker попутал & и @ :)
  • SPeller © (17.02.09 13:48) [4]
    Использую не визуал-студиевский jscript, в котором можно @ использовать, а windows script host. Коллеги мне тут подсказывают что это фича такая в скрипте, что нельзя параметры изменять. Где бы узнать точно так это или нет?
  • clickmaker © (17.02.09 17:46) [5]
    > Коллеги мне тут подсказывают что это фича такая в скрипте,
    > что нельзя параметры изменять

    да, правда
    "Only changes to properties of objects, or elements of arrays, are visible outside the function"
  • SPeller © (18.02.09 02:13) [6]
    Ок, всё понял, вопрос снят
 
Конференция "Corba" » out BSTR* - я туплю или нет? [Delphi, Windows]
Есть новые Нет новых   [119268   +54][b:0][p:0.001]