2013-06-25 48 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 

您不能使用唯一的字符是一個右括號:]