现在用VB写一个ActiveX DLL,工程名为TelPrj,内部的主类模块为DataCenter。在内部有一些枚举,比如:Public Enum ColorRingTypeEnum
  Work = 1
  Birthday
End Enum我希望在外面也可以访问到这个枚举,如:
dim obj as new TelPrj.DataCenter
Msgbox obj.ColorRingTypeEnum.Work如何实现?

解决方案 »

  1.   

    不需要使用对象限定符的啊。、直接Msgbox ColorRingTypeEnum.Work就可以了
      

  2.   

    不好意思,我没说清楚,我的意思是比如在ASP中创建这个对象,如何访问DLL内部的枚举?
    如在1.asp中代码如下:
    dim obj
    set obj = server.createobject("TelPrj.DataCenter")
    response.write obj.ColorRingTypeEnum.Work如何才能实现将DLL内部用到的枚举共享出来呢?
      

  3.   

    如果是后期创建,则应该是没有办法的。但我想了个笨办法,就是类DataCenter中定义一个属性ColorRingTypeEnum,属性ColorRingTypeEnum是另外一个类对象,该类也有属性Work来获得枚举,
    使用时,就是用obj.ColorRingTypeEnum.Work来获得的了。呵呵
      

  4.   

    呵呵,解决问题就是好方法,不过难道VB中就不支持将枚举共享吗?就像一个Public Method。
      

  5.   

    VB中可以支持枚举共享的,在ActiveX DLL Class中定位为Public,
    那么在应用程序Form中就可以直接使用
    如 LGYAN(紫衣随想)所说,不用使用对象限定符但是ASP中好像就没用过,在ASP中尽量不要使用复杂和抽象的数据类型。。