就是找到这个变量的内存地址,直接读写例如:scanf("%d",&a);就是找到a的地址,把读入一个数写到a 的地址中在例如p=&a;就是让指针p指向a的内存地址,这样直接对内存读写有利于提高 *** 作速度
DWORD dwEndscene_hook = lpdTmp->EndScene;
改成:
DWORD dwEndscene_hook = &lpdTmp->EndScene;
C++中函数名就是地址
比如:
void a(){};
a就是地址
如果在类AA中
可以AA::a就是函数的地址
或者&a也表示a的地址,int a = (int)&a
C#中我所知道的就是把函数定义为委托就是把普通的函数定义时在前头加上delegate关键字,这之后就相对于C++里的指针用了
http://2032083999/searchq=cache:9KVHFKm1ziYJ:devrdxxcom/NET/CSharp/2003-10/10/104058629shtml+c%23+%E5%87%BD%E6%95%B0%E5%9C%B0%E5%9D%80&hl=zh-CN&ct=clnk&cd=7&gl=cn&st_usg=ALhdy28EMZZ7E16d_zdZU83DmXwyPgNfPQ
这里有委托的详细介绍和C#委托的经典例子
严重怀疑你是64位的程序
这样, 函数指针是64bit的地址,但是int依然是32bit,转换时精度问题导致不一样
你数数fun的地址的位数,是不是超过32bit(8byte)
或者long addr=(long)fun
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)