Как создать SAFEARRAY в Windows JScript? - PullRequest
4 голосов
/ 06 мая 2011

Я хочу создать SAFEARRAY байта типа в Windows JScript.
Можете ли вы привести пример кода или указать правильное направление?

Ответы [ 2 ]

4 голосов
/ 06 мая 2011

Хаки, но stripting.dictionary::items возвращается как безопасный массив, поэтому при некоторых обстоятельствах (запросы ADSI) работает следующее, однако YMMV значительно пробует это с двоичными данными.

function getSafeArray(jsArr) {
    var dict = new ActiveXObject("Scripting.Dictionary");
    for (var i = 0; i < jsArr.length; i++)
    dict.add(i, jsArr[i]);
    return dict.Items();
}

//to a safe array
var safearr = getSafeArray([11,22,33]);

//back to a js array
var jsArr = new VBArray(safearr).toArray();

log(jsArr[2])
1 голос
/ 06 мая 2011

JScript не позволяет вам создавать безопасные массивы, вам, вероятно, потребуется написать ActiveXObject, чтобы справиться с этим за вас.

...