若該文為原創文章,轉載請注明原文出處
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113773009
長期持續帶來更多專案與技術分享,咨詢請加QQ:21497936、微信:yangsir198808
紅胖子(紅模仿)的博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中…(點擊傳送門)
Qt開發專欄:開發技術
上一篇:無
下一篇:敬請期待…
前言
??使用Qt開發Qt的控制元件制作成OCX以供C#呼叫,而activex則是ocx的更高級形式,
??QtCreator是沒有Activex控制元件專案的,所以需要使用VS,筆者使用VS2019開發,
準備作業
??Qt5.15.2 + VS2019 + vs tools,搭建基礎開發環境不再贅述,
??
開發第一個Qt Activex:Hello world
步驟一:新建Qt ActiveQt Server專案
??
??
??
??
??
??
步驟二:拖一個QLabel,輸入”Hello world”
??
步驟三:生成出現錯誤“MSB3073”
??
??需要使用管理員權限打開VS2019軟體,
步驟四:生成release和debug版本
??
??
??
步驟五:注冊activex控制元件
??運行之前先要注冊,使用Qt下自帶的idc注冊一下,
idc -regserver activeHelloWorldDemo.dll
??
步驟六:呼叫activeQt控制元件
??查看一下,打開注冊表并搜索一下,確認clsid,如下圖:
?? 
??創建一個html,然后輸入如下內容:
<html>
<head>
<title>activeQtDemo</title>
</head>
<body>
<object id="object"
classid="CLSID:2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC">
<!-- 以下為入坑了 -->
<!-- classid="2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC"> -->
[Object not available! Did you forget to build and register the server?]
</object>
</body>
</html>
??使用IE運行,active是微軟特有的,其他瀏覽器不支持,如下圖:
??
入坑
入坑一:呼叫控制元件失敗
問題
??
原因
??因為classid的格式錯誤
解決
<html>
<head>
<title>activeQtDemo</title>
</head>
<body>
<object id="object"
classid="CLSID:2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC">
<!-- 以下為入坑了 -->
<!-- classid="2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC"> -->
[Object not available! Did you forget to build and register the server?]
</object>
</body>
</html>
??
上一篇:無
下一篇:敬請期待…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259036.html
標籤:其他
上一篇:2021牛年大吉,紅包敬上
