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()");
    
                        请大神帮忙!
    
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码