2013-06-25 49 views
-1

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

C版本的什么,我试图做的是:

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

太谢谢你了。

+2

如果您库仑d显示一些可能有用的代码。你怎么试图运行这个? –

+1

我认为你应该尝试重新说明你的问题。这里很难制定出你的意图。正如Keith Smiley所建议的,一个代码示例在解释你想要做什么时会非常有帮助。 –

+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 

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