マシン語コードで1+1をやります。
まずはメモ帳などで下のコードを書いてコマンドラインコンパイラなどを使用してマシン語コードを取り出します(取り出し手順は省略)
#include <windows.h>
int WINAPI opt(int one,int two) {
return one+two;
}正常に取り出せると以下のようなコードが取り出せると思います。
8B 44 24 08 8B 4C 24 04 03 C1 C2 08 00
これをマシン語配列Converterにかけると下のようなコードが出てくると思います。
xdim fncode,4 fncode(0) = $0824448b, $04244c8b, $08c2c103, $00000000
HSP3を起動させて、下のように出力されたコードを実行するコードを書きます。
#include "xdim_hsp3.as" xdim fncode,4 fncode.0 = $0824448B, $04244C8B, $08C2C103, $00000000 //n+mとしたら prm.0 = 1 //n prm.1 = 1 //m fncodeaddr = varptr(fncode) //マシン語コードのアドレスを取得 r = callfunc(prm, fncodeaddr, 2) //コード実行 dialog "結果="+r end
実行すると正常にマシン語コードが実行されます。
Copyright 2006 NV 自宅サーバ 管理人:NV