如何在VC ++中获取函数的真实地址

时间:2011-05-17 17:27:30

标签: windows winapi visual-c++ dllimport

我正在学习Win32API。 我的程序有两个功能。 我尝试在VC ++中使用调试模式。我在调用dumy函数时设置了一个断点

void CALLBACK Dummy(){

    printf("\n Hello Dummy Func!");
}

//////////////////////////////////////////////////////////////////////////

int _tmain(int argc, _TCHAR* argv[]){

      (breakPoint) Dummy();
}

当我调用dumy()函数时。程序跳转到地址012110D7作为流程代码

Dummy:
012110D7  jmp         Dummy(12113A0h) 

虚拟功能的实际地址是12113A0h 我的问题是如何获得虚拟功能的真实地址是12113A0h 我在发布模式下运行时问题已解决。 这是我第一次加入StackOver流程。我希望每个人都能帮助我。谢谢 !!叮咚

1 个答案:

答案 0 :(得分:5)

链接器插入此jmp指令以支持Debug配置中的Edit + Continue。这允许您在调试时编辑和编译代码。通过jmp指令的额外间接允许生成函数的不同版本,更改jmp目标以使更改生效。

使用项目+属性,链接器,常规,启用增量链接=否,关闭编辑并继续关闭。