我在程序中用钩子拦截API函数,拦住了MessageBoxA函数,但无法拦截AfxMessageBox函数。MessageBoxA函数是什么?AfxMessageBox不是一个API函数吗?为什么前者能拦住而后者无法拦截?我的目的是修改AfxMessageBox的字符串参数,在其后面追加一个字符串。有谁给我一个方法吗?不胜感激!

解决方案 »

  1.   

    AfxMessageBox不是API
    是vc的全局函数
      

  2.   

    AfxMessageBox不是API
    是MFC定义的一个宏,为了方便操作,可以省去很多不常用的参数。
    比如:
    AfxMessageBox("aaaaa");
      

  3.   

    就是说如果你拦截了MessageBoxA 和 MessageBoxW 那么,AfxMessageBox就已经被拦截了
      

  4.   

    没错
    socket函数recv和send应该也可以拦截吧,从而监听本机的网络数据。我试了一下它们两个不行
      

  5.   

    AfxMessageBox不是api函数,MessageBoxA 和 MessageBoxW 才是
      

  6.   

    曾读到“有前缀Afx的是mfc的全局函数”
      

  7.   

    socket函数recv和send
    你要先确定它们在那个dll中,他们的函数名是否正确,别又是宏
      

  8.   

    给楼主一个建议,你可以编写一个简单的程序,里面只有一句:
    AfxMessageBox("This is a test!");
    程序编译好后,找一个调试软件进行调试,到上面那一句的时候,你跟踪下去,就知道,它到底调用了什么函数了。
      

  9.   

    MessageBox没有问题,我现在问题是拦截send函数,有时候可以拦到,有时候却不可以
      

  10.   

    AfxMessageBox 最终也是调用 MessageBox函数,自然可以拦截了