首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么取得函数地址?

2013-04-21 
如何取得函数地址??火大了,今天早上还好好的.不知道怎么就不好使了!情况如下:int add(int a,int b){return

如何取得函数地址??
火大了,今天早上还好好的.不知道怎么就不好使了!情况如下:

int add(int a,int b){
    return a+b;
}
翻译成汇编是:

addr1:   jmp   addr2


addr2:   push ebp         ;这里才是函数add的真正地址
         mov ebp,esp

当我  char *p = (char*)add 时,得到的是addr1这个地址!!但我想得到addr2这个地址啊,编译器好贱啊尽帮倒忙! 今天早上还还给我addr2的地址,下午不知道弄了什么给我addr1了,弄的我程序出错. 明明调试时那个函数指针的值都是addr2了,最后赋值却给我addr1! 还好用CE跟了才知道原来拿了JMP的地址.
有什么办法法!!加标号也不行啊


[解决办法]
看起来路走的复杂了一些,你的需求是什么?这类问题应该用函数指针来解决的。
[解决办法]
int (*add)(){}用函数指针试试吧。
[解决办法]
(char*)&add;

[解决办法]
解决了就好
一直在关注着,不敢轻易回复,呵呵
还得琢磨琢磨
[解决办法]
楼主的代码这么微妙,需要在汇编上战斗,即便今天修好了,也保不齐那天又坏了,什么样的设计迫使楼主这么搞啊。

热点排行