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换成枚举来限制用户的操作。

posted on 2012-10-10 14:35  Yangtze_y  阅读(183)  评论(0编辑  收藏  举报