正在阅读:《编程高手箴言》读后(4)《编程高手箴言》读后(4)

2004-04-08 14:39 出处:CSDN 作者:seacloud 责任编辑:sdq

  老一点的编译器在写struct时,可以把成员函数和变量放在一起使用,结构和类是一样的。但是,这个结构的属性相当于全部是public。
=========================================
  MSDN里类似这种初始化COM的代码

  struct XXX_OLE_INIT
  {
       XXX_OLE_INIT() { CoInitialize(NULL); }
       ~XXX_OLE_INIT() { CoUninitialize(); }
  }XXX_OLE_INIT;

  总是可以在VC的各个版本里Pass的,此时的struct XXX_OLE_INIT就相当于一个全部成员都public的class。

  当编译器调用时,就会产生一个相应的CALL ?add@@YAHHH@Z或CALL ?add@@YAMMMM@Z
=========================================
  遇到这种“神秘”的说明,我们可以用Platform SDK自带的一个工具UndName.exe来找出究竟这些看起来乱七八糟的字符串到底是在定义些什么。

  class class_abc
  {
      void fuc(int a, int b, int c);
  }
  extern "C" class_abc _fuc(void *lpthis, int a, int b)
  {
      ((abc *)lpthis)->fuc(int a, int b, int c);
  }
  void main()
  {
      int a = 1,b=2,c=3;
      class_abc abc;

      class_abc _fuc((void *)&abc, a, b, c);
  }
=========================================
  实在搞不动上面这段程序是什么?

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品