union过代理存根

union在过代理存根的时候需要制定union的大小如

typedef [public] [switch_type(long)] union _uMicro
{
   [case (1)] long*checkInInfo;
      [case (2)] long  *commonBlog;

}uMicro;

typedef [public] struct _MicroBlog {
   long t;
   [switch_is(t)] uMicro unionMicro;
}MicroBlog;

public属性是标记在生成tlb时是否显示该属性

我发现的情况是当进程A使用该union时如果MicroBlog.t不为定义的属性1或2时 进程A就会挂掉。所以最后把MicroBlog 中的t换成枚举来限制用户的操作。

原文地址:https://www.cnblogs.com/Neu400753645/p/2718283.html