1. 获取ActiveX控件的ClassID(uuid)
如果使用已经开发好的控件,它的CLASSID可以通过调用Win95或NT下的应用Regedit来查找。从开始菜单中运行该程序,展开HKEY_CLASSES_ROOT项,可以看到按字母顺序排列的注册表,找到需要使用的控件名,例如WClnt,展开时可看到一个CLSID:http://en.wikipedia.org/wiki/Globally_unique_identifier目录,里面就是该控件的CLASSID。
2. 在.pro文件中加入:QT += axcontainer
3. 程序实例:
#include "mainwindow.h"
#include <QApplication>
#include <QAxWidget>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QAxWidget *axWidget = new QAxWidget(0,0);
axWidget->resize(500,80);
axWidget->setControl(QString::fromUtf8("{7177F954-BDD0-4CF6-A908-16E7436780CC}"));
bool open = axWidget->dynamicCall("OpenCom(int, int, byte, byte, byte)", 8,115200,8,0,0).toBool();
if(open)
qDebug() << "COM open success!";
else
qDebug() << "COM open failed!";
bool open1 = axWidget->dynamicCall("IsOpenCom(void)").toBool();
if(open1)
qDebug() << "COM opened!";
else
qDebug() << "COM not opened!";
axWidget->show();
return a.exec();
}