在.net 中调 一个VC的Com DLL
要指定一个回调函数,现在在Com中的实现是把回调函数的指针做成了Long类型。
但是在.net中函数指针是一个委托。
怎样才能把.net中的委托类型传给com 方法的long类型?
或者如果改Com方法中函数指针的类型能解决问题也可以。万分感谢注:在Com中用的是导出类而不是普通DLL中的导出函数的方式,方法也是类的成员函数

解决方案 »

  1.   

    http://topic.csdn.net/t/20020501/15/693339.html
      

  2.   

    谢谢楼上的,不过我看不懂啊,能给解释解释吗?它提到的:
      interface   MarshalObject   {   
            void   SetVariant(Object   o);   
            void   SetVariantRef(ref   Object   o);   
            Object   GetVariant();   
        
            void   SetIDispatch   ([MarshalAs(UnmanagedType.IDispatch)]Object   o);   
            void   SetIDispatchRef([MarshalAs(UnmanagedType.IDispatch)]ref   Object   o);   
            [MarshalAs(UnmanagedType.IDispatch)]   Object   GetIDispatch();   
            void   SetIUnknown   ([MarshalAs(UnmanagedType.IUnknown)]Object   o);   
            void   SetIUnknownRef([MarshalAs(UnmanagedType.IUnknown)]ref   Object   o);   
            [MarshalAs(UnmanagedType.IUnknown)]   Object   GetIUnknown();   
      }   
    我怎样去实现?谢谢了。
      

  3.   

    用byte[]就可以。我都是这样弄的。
      

  4.   

    楼上的,没明白什么意思。
    怎样把委托类型转化为byte[]?