-1

我有一个存储十六进制数据的字符串 (\xEA\x...)。无论如何使用vbs运行该代码?也许对函数指针或类似的东西进行某种类型的转换。

我正在尝试做的 C 版本是:

unsigned char opcode[] = "\xc0\x...."
main()
{
    int (*run)() = (int(*)())opcode;
    run();
}

太感谢了。

4

1 回答 1

0

您可以将函数指针(或函数引用)与 GetRef 函数一起使用:

dim fp : set fp = GetRef("ShowMessage")
call fp("Woosh")

function ShowMessage(msg)
    msgbox msg
end function

要使其适用于函数命名通常为非法字符的任何字符串(如十六进制数据中的反斜杠),您可以在函数声明中使用方括号:

dim fp : set fp = GetRef("99 problems")
call fp()

' note: functions normally cannot start with a digit or contain spaces
function [99 problems]()
    msgbox "but this aint one"
end function

唯一不能使用的字符是右括号:]

于 2013-06-26T08:44:09.033 回答