Qt 關於COM組件的使用的記錄


昨天收到外面新給的關於人臉識別的庫,linux是.so文件,windows是提供的安裝程序並且文檔是說明將其中主要的dll作為COM組件進行再使用

之前沒有接觸過COM組件的相關變成,昨天查了一些資料。

發現一個博文

 https://www.cnblogs.com/zhehan54/p/5625416.html

這個博主應該是翻譯了國外的一系列博文,關於COM組件的說明很詳細,大家如果有興趣可以學習以下

里面有對於COM組件的使用的幾種方法介紹和例子,很適合學習使用

 

另外在Qt中其實也有自帶的對於這種COM組件的辦法

Qt中提供了dumpcpp這個工具可以將你需要使用的DLL文件轉出對應的.h和.cpp文件。

項目中可以直接使用這個頭文件。

我開始是在Qt5.5版本去找這個工具,但是沒有,5.7版本有。

我的路徑類似於E:\QT\Qt5.9.0\5.9\msvc2015\bin\dumpcpp.exe

需要通過windows的控制台才能調用。

在控制台中輸入dumpcpp,可以獲得幫助文檔,里面還有提供的examples

我用的第一條,輸出的結果是在當前文件目錄會有ieframe.h和ieframe.cpp文件。

 

另外,還嘗試了QAxObject這個Qt的類,但是發現導不出來。

以下是嘗試的代碼

QAxObject objo = new QAxObject("{fc3899cf-1dda-4f3d-917c-aa7a7385320b}");
    QString doc = objo.generateDocumentation();
    QFile outFile("D:/debug.html");
    outFile.open(QIODevice::WriteOnly|QIODevice::Append);
    QTextStream ts(&outFile);

    ts<<doc<<endl;
    outFile.close();
View Code

 


new里面給的是CLSID,這個ID我是從dumpcpp導出來的頭文件獲得的。

eg:代碼里面有個小錯誤,objo應該指針 * objo,不然導不出html文件,從dumpcpp中導出的CLSID是正確的,在注冊表\HKEY_CLASSES_ROOT\下面的CLSID也能找到。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM