none
如何根据clsid调用com组件的方法 RRS feed

  • 问题

  • 大家好,请教一个问题,我现在知道系统中有一个已经注册的vc6开发的com组件,并且知道这个com组件的clsid和一个方法的名称,请问,我如何在c#中根据已知的这两项调用这个方法呢,我从网上找了一些例子,有人说这样可行(已知的方法名称是Sum,接收两个参数,做加法):

                object[] parameter = new object[2];
                parameter[0] = 5;
                parameter[1] = 2;

                Type m_ComType_Document = Type.GetTypeFromCLSID(new Guid("0B4D700A-5B52-4DBB-8882-DB2A21BF3456"), false);//
                object objDoc = Activator.CreateInstance(m_ComType_Document);

                object result = m_ComType_Document.InvokeMember("Sum", BindingFlags.Default | BindingFlags.InvokeMethod, null, objDoc, parameter);

    这段代码运行时会出异常,检索 COM 类工厂中 CLSID 为 {0B4D700A-5B52-4DBB-8882-DB2A21BF3456} 的组件时失败,原因是出现以下错误: 80040154。请问这是怎么回事?
    2009年12月4日 7:00

答案

全部回复