哪位有名字分裂规则的赐教,急需这方面的资料,先谢谢了

解决方案 »

  1.   

    名字分裂的目的:使产生重载的符号在编译系统内部有唯一的名字,从而使得它们在目标代码中有不同的入口地址。
    名字分裂原则:
    <@类名>@函数名$q符号化的参数表
    void Counter::Value(int k)
    @Counter@Value$qi
      

  2.   

    对啊,msdn中只是大概说了一下,没有任何有用的东西
      

  3.   

    看一下vc/bc等生成的符号表就清楚啦,不用编译器的源代码,照抄符号表就会兼容的.
    比如vc的通常是
    全局导出变量:sprintf(strSymbolName,"__imp__%s",strVarName);
    全局C格式导出函数:sprintf(strSymbolName,"__imp__%s",strFunctionName);
    构造函数:sprintf(strSymbolName,"??0%s@@QAE@HHPBD@Z",strClassName);
    析构函数:sprintf(strSymbolName,"??0%s@@QAE@ABV0@@Z",strClassName);
    ...
    自己去看VC生成的.exp/lib/obj就知道了