我有一个小函数做一些小的计算(没有外部调用或字符串),我已经将函数从内存转储到字节数组。 现在我试图调用字节数组中指向的地址,但是我遇到了访问冲突,我认为问题是我使用的方法:
type TFunc = function (input: Pointer): Integer;
...
procedure execute;
const
Buffer: array[0..287] of Byte = ($55, $48, ...)
var
Callable: TFunc;
output: Integer;
begin
Callable := TFunc(@Buffer);
i := Callable(somePointer);
...
end;
我在将其转换为字节数组之前测试了该函数并且它正常工作。我也不能直接指向" Callable"。 访问冲突仅在呼叫时发生。 是否有可能只使用免费的pascal或者我需要一个asm来进行通话?如果是这样,我如何传递参数并获得结果? 我还需要为另一个函数传递一个数组吗? 感谢