【源码下载地址】:http://210.33.90.250/download/vbsrc/callpatch.rar测试通过环境: XP + VB6 SP6+ VBA6.DLL(6.0.0.9782版)因为只有在开发环境中vb才会对函数调用前后的堆栈位置进行检查,所以,我只给ide下的vba6文件打了补丁。我不担保用这个不会出现什么不可预期的后果哦,大家自己玩吧,呵呵

解决方案 »

  1.   

    绿豆献身,必有精品。顶一下~~~~~~~~
    PS:我想了一种方法,不知道行不行……自己制作一个VB过程,这个过程实现:通过数组传递参数
    参数压栈
    调用目标函数
    保存返回值
    根据参数数目 add esp, xxx这样就完全模拟了编译器器对 __cdecl 的调用过程了
    (     以上只是偶随便想的,没实践  ^_^     )
      

  2.   

    我前几个月写过的那个VBAnyCall大概符合你所说的意思吧,呵呵
      

  3.   

    提个建议:建议在VBAnyCall里加入 thiscall 和/或 fastcall 调用约定的支持。接分!