Se o artigo for um artigo original, indique a fonte original para reimpressão.
O endereço do blog deste artigo: https://blog.csdn.net/qq21497936/article/details/113773009
Continuaremos a trazer mais projetos e compartilhamento de tecnologia por um longo tempo, por favor, adicione QQ: 21497936, WeChat: yangsir198808 para consultas
Coluna de Desenvolvimento Qt: Tecnologia de Desenvolvimento
Anterior: Nada
Próximo: " Qt Development Activex Notes (2): Qt chama controles Activex desenvolvidos por Qt "
Prefácio
Usar Qt para desenvolver controles Qt é feito em OCX para C # chamar, e activex é uma forma mais avançada de ocx.
QtCreator não tem um projeto de controle Activex, então você precisa usar o VS. O autor usa o VS2019 para desenvolvimento.
Pronto para trabalhar
Qt5.15.2 + VS2019 + vs ferramentas, a configuração de um ambiente de desenvolvimento básico não entrará em detalhes.
Desenvolva o primeiro Qt Activex: Olá, mundo
Etapa 1: Criar um novo projeto Qt ActiveQt Server
Etapa 2: arraste um QLabel e digite "Hello world"
Etapa 3: gerar um erro "MSB3073"
Você precisa usar privilégios de administrador para abrir o software VS2019.
Etapa 4: gerar versões de lançamento e depuração
Etapa 5: registrar o controle activex
Registre-se antes de executar, use o idc que vem com o Qt para registrar.
idc -regserver activeHelloWorldDemo.dll
Etapa 6: Chame o controle activeQt
Verifique, abra o registro e pesquise para confirmar o clsid, conforme mostrado abaixo:
Crie um html, e a seguir digite o seguinte:
<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>
Use o Internet Explorer para executar, o ativo é exclusivo da Microsoft e outros navegadores não o suportam, conforme mostrado a seguir:
Dentro da cova
No fosso 1: chamar o controle falhou
problema
a razão
Porque o formato do classid está errado
resolver
<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>
Anterior: Nada
Próximo: " Qt Development Activex Notes (2): Qt chama controles Activex desenvolvidos por Qt "