что-то не работает в 4.0SP2ЕЕ функция urlEscape() из формы Tabax. Скопировал в job, также не работает; в 3.0 все ОК. В 4.0 выводит пустую строку.
X++:
static void JobTabaxUrlEscape(Args _args)
{
str _s = "dsfsdfsdf ndfghghdf";
DLL dll = new DLL("shlwapi.dll");
DLLFunction URLEscape = new DLLFunction(dll, "UrlEscapeA");
Binary escaped = new Binary(strlen(_s)+1);
Binary cnt = new Binary(4);
#define.E_POINTER(0x80004003)
;
URLEscape.arg(ExtTypes::String, ExtTypes::Pointer, ExtTypes::Pointer, ExtTypes::DWord);
URLEscape.returns(ExtTypes::DWord);
cnt.dWord(0, strlen(_s)+1);
if (URLEscape.call(_s, escaped, cnt, 0) == #E_POINTER)
{
escaped = new Binary(cnt.dWord(0)+1);
URLEscape.call(_s, escaped, cnt, 0);
}
info(escaped.string(0));
}
ЗЫ Заменил
X++:
if (URLEscape.call(_s, escaped, cnt, 0) == #E_POINTER)
на
X++:
if (URLEscape.call(_s, escaped, cnt, 0) == any2int(#E_POINTER))
и все заработало.