gcc中使用uuidof

    技术2022-05-11  87

     

    前面转了一篇文章仿vc的uuidof: http://blog.csdn.net/zzw_happy/archive/2006/05/22/749407.aspx

    现在发现了一个针对gcc的,使用了gcc的typeof:

    template <   class  T > struct  hold_uuidof {    static GUID __IID ;} ; /*    this is a nice one. In MSVC++ u can do:    __uuidof(Foo) __uuidof(pointer2Foo) __uuidof(refranceofFoo)    and __uuidof(classAFoo). The GCC typeof() will take care of that    (get it: use one's extension to implement another)*/ #define  __uuidof( Q ) hold_uuidof< typeof(Q) >::__IID /*    use this macro to assosiate a guid to a class/struct.*/ #define  MAKE_UUIDOF_ID( class ,IID )      template <>      GUID hold_uuidof < class > ::__IID  =  IID; /*    This one is the same as above but:    presupposes an IID_Interface was already defined*/ #define  MAKE_UUIDOF( class )      MAKE_UUIDOF_ID( class , IID_## class )

     

     

     


    最新回复(0)