最近研究Thorlabs公司的一款微動平臺BPC303,因爲後期實驗中須要作到自動化控制磁性材料的移動,因此須要編寫程序控制那貨!官方給的資料很少,編程環境有三個可選VB,VC++,Labview。出於某些緣由,不想使用這些編程環境,仍是但願能使用Qt來解決問題。因而乎開始研究Qt下調用ActiveX Control的方法。研究了2天,基本找到方法了,下午把筆記本拿過來,鏈接到微動上跑跑。編程
因爲QT5.6 for mingw是使用的32位的編譯器,因此在安裝Thorlabs這個軟件時,也要安裝其對應的32位版本,由於32位的程序沒法調用64位ActiveX Control(目前是這樣的)spa
新建Qt工程就不說了,在.pro文件中加上一行QT+=axcontainercode
#include "mainwindow.h" #include <QApplication> #include <QAxWidget> #include<QDebug> int main(int argc, char *argv[]) { QApplication a(argc, argv); QAxWidget *motor =new QAxWidget(0,0); motor->resize(600,500); qDebug()<<"before set control code"; motor->setControl(QString::fromUtf8("{7EEBDE39-6447-41EC-89D8-94A754092050}")); motor->setWindowTitle("the motor of APT"); const int SN=71864678; QVariant qsn(SN); qDebug()<<qsn; motor->setProperty("HWSerialNum",qsn); qDebug()<<motor->property("HWSerialNum"); qDebug()<<"after set control code"; motor->dynamicCall("StartCtrl()"); motor->show(); return a.exec(); }
效果以下:blog
安裝完官方的程序後(在安裝路徑裏面能夠看AAA.ocx的文件)
而後使用命令regedit打開註冊表,在HKEY_CLASSES_ROOT下面find對應的文件名AAA
這樣就能夠找到CLSID了圖片