Visual Studio下Qt调用IDL

一.简单介绍:

1.ActiveQt包含QAxContainer和QAxServer组件。

  1) QAxContainer允许使用COM对象,并且可以将ActiveX控件嵌入到Qt程序中去。

    QAxContainer是有三个类组成的。分别是:

    QAxObject封装了COM对象

    QAxWidget封装了ActiveX控件

    QAxBase是QAxObject和QAxWidget的父类,它实现了封装COM的核心函数。

    通过调用QAxWidget的property()方法和SetProperty方法可以获取和设置ActiveX控件的属性。

    调用ActiveX控件的方法属性需要COM中的数据类型和Qt中的数据类型的转换。COM中数据类型和Qt中的数据类型对应的表格:

     

  2) QAxServer可以将我们写的Qt控件导出为COM对象或者是ActiveX控件。

  3)一个简单例子:

    #include <QApplication>#include <QtGui>#include <QAxWidget>int main(int argc, char *argv[]){QApplication a(argc, argv);QAxWidget *flash = new QAxWidget(0,0);flash->resize(500,80);flash->setControl(QString::fromUtf8("{d27cdb6e-ae6d-11cf-96b8-444553540000}"));flash->dynamicCall("LoadMovie(long,string)",0,"F:/1.swf");flash->show();return a.exec();}

  

 

二.方法

1.首先在windows中注册idldrawx3.ocx

  进入cmd,输入以下命令:(注意后面的路径要带双引号)

  regsvr32  “C:\Program Files\ITT\IDL\IDL81\bin\bin.x86\idldrawx3.ocx”

 

2.Qt中调用ActiveX:

  1)通过Qt设计师将 QAxWidget放到界面上;

  2)右键->设置控件;

  3)选择系统中注册的ActiveX控件IDLDrawWidget Control 3.0;

  4)如果工程中没有添加ActiveQt支持,可以通过Qt->Qt Project Settings->Qt Modules 然后勾选ActiveQt container支持;如果是Qt Creator 工程,则需要在.pro文件中
    添加: CONFIG  += qaxcontainer  

 

3. ActiveX中接口的调用,通过dynamicCall()实现;

  dynamicCall()最多传递八个QVariant类型的参数,并且返回类型也是QVariant。

转载于:https://www.cnblogs.com/striver-zhu/p/4652203.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装java过程_Java的安装过程

记录一下自己在Windowns下安装java的过程打开网址后要先登录&#xff0c;如果没有号就先注册&#xff0c;然后才能下载step1&#xff1a;下载JDK(1)将鼠标指向download&#xff0c;会出现如下界面:(2)点击左上角PopularDownloads下的 Java for Developers进入如下界面&#xff…

HDU2571

早期昨晚&#xff0c;跪&#xff0c;体倦&#xff0c;简直太CF该。早上起来刷标题。Then,写python&#xff0c;shell,一天后基础。 标题或标题中国&#xff5e;&#xff01;思维&#xff1a;本主题开始寻找一个dfs&#xff0c;但是&#xff0c;这个矩阵外观似太大&#xff0c;d…

dockerfile源码安装mysql_docker容器详解五: dockerfile实现tomcat环境以及源码安装mysql...

tomcat上一节讲到了dockerfile的基础&#xff0c;这一次咱们来作一个小的练习首先要了解tomcat安装的整个过程首先搭建 jdk环境&#xff1a;下载jdk包&#xff0c;解压以后添加环境变量而后搭建tomcat&#xff1a;下载tomcat包&#xff0c;解压&#xff0c;修改配置文件到一个工…

pom.xml的配置详解

<!--可以免费转载&#xff0c;转载时请注明出处 http://pengqb.iteye.com 。--><project xmlns"http://maven.apache.org/POM/4.0.0 " xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation"http://maven.apache.or…

azkaban 与 java任务_azkaban任务报错java.lang.RuntimeException: The root scratch dir: /tmp/hive...

azkaban运行任务的时候失败报错如下&#xff1a;23-03-2016 08:16:14 CST analyzer-kafka2hdfs_new ERROR - Exception in thread "main" org.apache.hive.service.cli.HiveSQLException: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS shou…

php-fpm的重启/关闭

php 5.3.3 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令&#xff0c;需要使用信号控制&#xff1a; INT, TERM 立刻终止QUIT 平滑终止USR1 重新打开日志文件USR2 平滑重载所有worker进程并重新载入配置和二进制模块 kill -…

SQL server 2008数据库的备份与还原、分离(转)

一、SQL数据库的备份&#xff1a; 1、依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Server Management Studio → 数据库&#xff1a;Dsideal_school_db既是我们需要备份的学籍数据库 图&#xff08;1&#xff09; 2、选择要备份的数据库“Dsideal_school_d…

Java做一个动画效果音量调节_设计与实现一个 ISoundable 接口,该接口具有发声功能、还能调节音量大小...

[java]代码库package experiment6;public interface ISoundable {public void increaseVolume();public void decreaseVolume();public void stopSound();public void playSound();}package experiment6;public class Radio implements ISoundable {public void increaseVolume…

人人都有极客精神

http://www.jisuanke.com/minicourse/59/438 人人公司是一家极为鼓励极客精神的公司&#xff0c;当有重要的项目需要上线但又时间太紧&#xff0c;甚至需要当天上线的时候&#xff0c;往往会挂起海盗旗开启电子日期显示&#xff0c;让大家可以在对时间有更明确的感知的情况下&a…

WPF入门教程系列十三——依赖属性(三)

四、 只读依赖属性 在以前在对于非WPF的功能来说&#xff0c;对于类的属性的封装中&#xff0c;经常会对那些希望暴露给外界只读操作的字段封装成只读属性&#xff0c;同样在WPF中也提供了只读属性的概念&#xff0c;如一些 WPF控件的依赖属性是只读的&#xff0c;它们经常用于…

java 反编译 类名_java javassist创建类和反编译类

public class Byte {public static void main(String[] args) throws Exception {//获得类池ClassPool poolClassPool.getDefault();//创建类CtClass ccpool.makeClass("cn.sxt.in.Emp");//创建属性CtField f1 CtField.make("private int empno;", cc);Ct…

java生成动态验证码_动态生成验证码案例

servlet代码package cn.guizimo.web.servlet;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.…

TCP、UDP、HTTP、SOCKET之间的区别

http://blog.csdn.net/magister_feng/article/details/8634518 转载于:https://www.cnblogs.com/luningning0901/p/4667733.html

特征选择算法java实现_relief算法特征选择

1.[文件]Relief算法程序.txt ~ 6KB下载(44)package com.relief.algorithm;import java.util.Random;import java.util.Set;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;import java.util.Map;public class Relie…

freemarker跳出循环

break语句跳出当前循环&#xff0c;如下: <#list table.columns as c> <#if c.isPK> <#assign pkNamec.columnName?cap_first /> <#break> </#if> </#list>转载于…

多线程程序排错总结

先不考虑其他因素&#xff0c;直接干掉密集IO操作&#xff0c;把并行IO变成串行IO 要沉下心来&#xff0c;先浏览一遍代码&#xff0c;看看是否有有问题的地方&#xff0c;首先找加锁的地方 没有办法的办法是&#xff0c;用二分法&#xff0c;一行一行的来定位转载于:https://w…

java如何将数据保存为xml6_用Java实现可保存状态的数据库生成XML树,源码来了(9)...

用Java实现可保存状态的数据库生成XML树&#xff0c;源码来了(9)时间&#xff1a;2006/7/19 5:38:30作者&#xff1a;佚名人气&#xff1a;306.3.2.Servlet源码1.RefreshServlet.javapackage com.sitechasia;import javax.servlet.*;import javax.servlet.http.*;import java.i…

企业服务总线全双工异步通信机

为了实现系统的高可靠性、高可用性和并行处理能力&#xff0c;我们经常使用一些负载均衡设备&#xff08;例如F5&#xff09;等集群解决方案。但&#xff0c;会有一些特殊的情况下&#xff0c;。例如&#xff0c;长连接、特殊的技术协议。不可用F5和其他设备来解决&#xff0c;…

java druid jdbc例子_JDBC【使用Druid连接数据库,DBUtils工具类的使用】

Druid连接数据库&#xff0c;DBUtils工具类的使用1.在maven中添加Druid依赖com.alibabadruid1.2.02.封装Druid连接方法import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.pool.DruidDataSourceFactory;import java.io.IOException;import java.io.Input…

TimerTask定时任务

web.xml <listener><listener-class>com.sign.listener.NFDFlightDataTaskListener</listener-class></listener> 监听器类 package com.sign.listener;import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener;impor…