coclass MXVectLayer
{
[default]interface IMXLayer;
 /*[default]*/interface IMXVectLayer; };
IMXVectLayer这个接口继承于IMXLayer,是不是可以在VB中
Dim layer As New MXLayer
Dim vectlayer As New MXVectLayer
Set vectlayer = layer

这样强制转换  然后使用IMXVectLayer接口中的方法
问题是[default]在coclass 定义中加在interface IMXLayer之前是可以强转的  但是IMXVectLayer接口对象就没有自己的方法了  只是IMXLayer的方法  也就是说只有“父类”的方法  自己的没有了
加在interface IMXVectLayer之前  VB提示类型不匹配救救我啊  大虾

解决方案 »

  1.   

    没看明白你的问题vb之间的借口赋值,内部应该也是调用了QueryInterface之类的方法获取对应的接口吧
      

  2.   

    IMXVectLayer是继承于IMXLayer
    interface IMXVectLayer : IMXLayer{
    我想在VB中将一个IMXLayer类型的对象强制转换为IMXVectLayer  然后调用IMXVectLayer  接口中的函数
      

  3.   

    VB只能访问Dispatch接口上的方法
      

  4.   

    interface IMXVectLayer : IMXLayer{
    改成
    interface IMXVectLayer : IDispatch{Set vectlayer = layer时,VB内部应该会从IMXLayer查询到IMXVectLayer接口的
      

  5.   

    当然在你的组件中应该要实现能从IMXLayer查询到IMXVectLayer接口的相关代码