请问,在VB中现有函数C,子程序A和子程序B,当A和B分别调用C函数时,C怎样才能知道是A还是B在调用他呢? 我想VB可能做不到,除非是传一个参数进去,以前也问过几个牛人如何得到当前函数的函数名,也是说好像做不到,C++里还有一个This,VB里却没有.呵呵,如果真是无解的话,就当是散分了,反正我都好久没上CSDN了.嘎嘎....

解决方案 »

  1.   

    To James0001,这个到是可以,不过,VB的程序只是运行在一个虚拟机上(MSVBVM60.dll)你要跟踪他的堆栈?呵呵,好像有点得不偿失哟!  /:D要是C++的话,这样搞到是很容易,VB本来是基于对象的,又不支持汇编......
      

  2.   

    // To James0001,这个到是可以,不过,VB的程序只是运行在一个虚拟机上(MSVBVM60.dll)
    // 你要跟踪他的堆栈?编译成本地码以后就可以用堆栈了。
    我现在调试程序比较习惯vb编译完后用vc调试。
      

  3.   

    // 如何得到当前函数的函数名如果是类里的函数话大概可以用类的 IDispatch 接口来得到函数名,不过实在麻烦了点。
    在 vc++ 里用一个宏就可以了 :( 没办法,谁叫比尔没发明个什么“GetCurrentFunctionName”之类的东东。
      

  4.   

    把自己传进去就知道了。不要死专牛角啊。就象VB没有位移运算,
    但不意味着VB就不能够进行位移运算,换另一种方法实现效果就是达到目标了,
    所谓语言都不是十全十美的。VC也一样,控件数组它没法实现吧,哈哈,但VC可
    用集合等方法实现控件数组的效果的道理是一样的。
      

  5.   

    to: supergreenbean(超级绿豆 - 要准备发芽了) 
    全局函数调用表!!!!!!!!!!!!!!不至于吧??
      

  6.   

    VB肯定做不到。建议你用MZTools Addin。可以方便地定制一个Error Handle的模板,在模板中定义一个PROCEDURE_NAME的常量,将此常量传入你的公用错误处理函数。之后,你只须在点一下工具栏中的按纽,就可以格式化你的出错处理了,使用起来非常方便。