如何实现动态函数
要实现函数的动态指令:
一般地,一个程序中的代码是固定的,如果要调用函数,则只能调程序中已有的函数,或选择若干个
函数中的一个(如:用函数指针)
1、现在,假设我想我在程序运行后,想添加一个函数,能否分配一个代码空间,然后我可以向其中
填入机器码,再调用此函数?
2、或且,我在程序运行后,已有一个函数,而其中的一条指令我是否有办法将其改变,此后,该函
数被调用时,结果将不同.
如下:
...
typedef int (*F)(int a,int b);
int D1(int a,int b)
{
return a-b;
}
int D2(int a,int b)
{
return a+b;
}
void CTestDlg::OnBnClickedButton1()
{
F f1,f2;
f1=D1;
f2=D2;
int a=1,b=2,c=3;
char*p1=(char*)f1;
char*p2=(char*)f2;
int np=p1-p2;
memcpy(p1,p2,np);
a=f1(b,c);
...
结果memcpy(p1,p2,np);不能执行
各位可有办法?