milk_216 2015-02-04 09:47 采纳率: 0%
浏览 2362

请教 Qt调用ActiveX 其中ActiveX又应用了dll

小弟今天遇到一个问题,我用vs2010 C#语言写了一个ActiveX控件给Qt使用,其中该控件又引用了其他的dll,我发现dll中的功能函数没有起到作用,而我在vs2010环境下通过同样的调用方式是可以的,但是Qt调用的时候,只有ActiveX包含的函数起作用,比如创建文件等,但是dll中加入创建文件的代码就不起作用,请路过的大神帮我看看,小弟感激不尽。

  • 写回答

2条回答 默认 最新

  • milk_216 2015-02-04 10:00
    关注

    C#可正常工作
    //根据classId获取ActiveX类
    Type type = Type.GetTypeFromCLSID(new Guid("23ED3667-1C8D-41F4-A56C-93998A0B6BE3"));
    //创建类的实例,第二个参数是object数组,就是你的构造函数里面的参数
    //null即为无参构造方法,也可以这么写
    //object obj = Activator.CreateInstance(type);
    object obj = Activator.CreateInstance(type, null);
    //获取实例的指定方法,根据方法名,还有其他重载,也可以根据参数找
    MethodInfo mi = type.GetMethod("analyze");
    // 调用方法,返回值是object,我的方法返回void,所以不写

    mi.Invoke(obj, null);

                        //Qt只能执行ActiveX中的函数,不能追踪到dll中的功能函数
                        flash->setControl(QString::fromUtf8("{23ED3667-1C8D-41F4-A56C-93998A0B6BE3}"));
            qDebug()<<"test :"<<flash->dynamicCall("analyze()");
    
                        请大神帮忙!
    
    评论

报告相同问题?

悬赏问题

  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样