我在跟踪一个程序,它调用LoadLibraryA函数装载了一个DLL,然后使用GetProcAddress得到一个函数指针,用这个指针创建了一个COM对象,跟踪到用这个函数指针创建COM对象时,我想直接跳过去,跟踪下一条语句,但是总是会打开汇编得窗口,请高手指点!
//装载DLL
mylib = LoadLibraryA(BBoxLib);typedef int (WINAPI * createfn) (BBOXOBJ **, unsigned short *);
//获得函数指针
createfn create = (createfn) GetProcAddress(mylib,"CreateInstance2");//用得到得函数指针创建对象,想要跳过这一句执行下一句
rval = (*create) (&bbobj, KSFilename);
if (bbobj == NULL) { 
......
}

解决方案 »

  1.   

    不行!即使整个程序一个断点都没有,如果F5都不行,但是直接执行(ctrl+F5)就没有问题!
      

  2.   

    if (bbobj == NULL) { 
    这行设断点不行吗??????????????????
      

  3.   

    实在不行使用step out current function !看看!!!
      

  4.   

    正常的调试方法我都试过了。
    这个DLL文件是微软发布的,不是我自己写的。
    微软在发布的时候就设计了一个断点,只要你在调试态调用此接口,就会中断。
    在另外一个论坛有人说“直接nop掉dll中的int3”,但是不知道怎么做,有没有高手指点一下!