小弟这几天碰到一些麻烦。
  一是关于c中如何实现异常处理的?我需要关于实现的原理而不是如何实现。
  二是关于友员的知识。
  三是计算机如何实现函数调用的?
  望各位大虾不吝赐教。

解决方案 »

  1.   

    一是关于c中如何实现异常处理的?我需要关于实现的原理而不是如何实现。
       通过gs,fs段寄存器来实现,他有个异常的链表。
    三是计算机如何实现函数调用的?
       对于系统的api,他的代码放在dll中,你的程序调用的时候,一班都是在PE的import table有他的地址,或是函数名,还有序号。通过jmp 77fe2342H这样的汇编指令来实现调用。慢慢学......
      

  2.   

    计算机如何实现函数调用
    看:Matt Pietrek在MSJ中的“under the hood”专栏
      

  3.   

    抱歉,我没学过汇编,所以不太懂。
      我只是知道在Dos系统中,首先将指令压进堆栈,(再压进返回地址,然后......这个部分比较模糊),在Windows中是不是也是如此?我知道Dos中有一块是用来存放程序返回信息的,不过我忘了是哪一块?
      我知道异常是设一个返回地址,因而发生问题后可以执行不同的路径,所以我想知道这个返回地址所指向的代码存放在何处?好像设定返回地址的函数时Setjmp,但不知怎么用?
      还有就是C++中类的的方法代码被加载到内存何处?
      关于友元,可不可以被继承?被Inherit之后是不是不会被调用构造的?
      

  4.   

    fbmsf,非常感谢你,我还是个新人,很多不懂。
     你提到了异常的链表,能不能再详细点?
      

  5.   

    建议楼主弄些intel的IA32体系的文档看看