比如:
procedure buttonclick(sender:Tobject);
var
do:String;
Begin
do:='showmessage('你好,你是高手')';
// 怎样把'你好,你是高手'这个字符串显示出来end
procedure buttonclick(sender:Tobject);
var
do:String;
Begin
do:='showmessage('你好,你是高手')';
// 怎样把'你好,你是高手'这个字符串显示出来end
begin
Result := ... ;
end ;s : String ;s := 'MyFun' ;通过 S 不可以调用 MyFun 的 ;
--------------------------------------Study
call : $E8
xor eax, eax : $33C0
ret : $C3type
PCode = ^TCode;
TCode = packed record
Code: array[0..2] of Byte;
Prc: Pointer;
Ret: Byte;
end;
const
BlockCode: array[0..2] of Byte = ($33,$C0,$E8);
var
Block:PCode;Block:=VirtualAlloc(nil, 7, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
Move(BlockCode, Block^.Code, SizeOf(BlockCode));
Block^.Prc:=Pointer(Longint(@Showmessage) - (Longint(@Block^.Code[2]) + 5));//计算Showmessage的相对地址
Block^.Ret:=$C3;//执行
asm
call Block
end;
//添加ActiveX控件MS Script ControlScriptControl.Language:='VBScript';//也可以是JScript等ScriptControl.ExecuteStatement('MsgBox("你好,你是高手")');//执行脚本
先将字符串代码保存。PAS文件,然后再在程序中调用DELPHI编译器打开那个文件执行,不知可以不可以
学习!