C++- VS2022-创建ATL 有QT库的工程-实例源码亲测可行,供大家参考

1.创建带QT库的ATL工程

创建 ATL COM 项目:在 Visual Studio 2022 中,选择 "文件" -> "新建" -> "项目",然后在 "创建新项目" 对话框中选择 "Visual C++" -> "ATL" 类别,选择 "ATL 项目向导" 作为项目模板。输入项目名称和存储位置,点击 "确定"。

  1. 安装 QT:首先,从 QT 官方网站(https://www.qt.io/)下载并安装适用于 Visual Studio 2022 的 QT 版本。确保选择正确的 QT 版本,以兼容您的 Visual Studio 2022。

  2. 配置项目属性:

    • 右键单击项目,在上下文菜单中选择 "属性"
    • 在属性页中,选择 "常规" 选项卡,确保 "字符集" 选项设置为 "使用多字节字符集"。
    • 在属性页中,选择 "C/C++" -> "常规" 选项卡,在 "附加包含目录" 中添加 QT 的头文件目录。D:\QT\Qt5.14.2\5.14.2\msvc2017_64\include
    • 在属性页中,选择 "链接器" -> "常规" 选项卡,在 "附加库目录" 中添加 QT 的库文件目录。    D:\QT\Qt5.14.2\5.14.2\msvc2017_64\lib
    • 在属性页中,选择 "链接器" -> "输入" 选项卡,在 "附加依赖项" 中添加所需的 QT 库文件,如 Qt5Core.libQt5Gui.libQt5Widgets.lib、Qt5Network.lib; 等。

       
    • 在项目属性页中,选择“VC++目录”->“包含目录”,并将QT库的“include”目录添加到其中。D:\QT\Qt5.14.2\5.14.2\msvc2017_64\include
    • 在项目属性页中,选择“VC++目录”->“库目录”,并将QT库的“lib”目录添加到其中。
          D:\QT\Qt5.14.2\5.14.2\msvc2017_64\lib
  3. 添加 QT 代码:

    • 在 ATL COM 项目中的源文件中包含所需的 QT 头文件,如 #include <QtCore/QtGlobal>
    • 使用 QT 库提供的功能编写代码,如创建 QT 对象、连接信号和槽等。
  4. 构建和运行:完成代码编写后,选择 "生成" -> "生成解决方案" 来构建项目。如果一切顺利,您可以通过选择 "调试" -> "开始调试" 或按下 F5 键来运行您的 ATL COM 项目,并验证 QT 代码的运行结果。


     

2.注册.dll


2.1  在属性页中,选择“生成事件” -> “后期生成事件”选项卡。

  1. 在“命令行”文本框中,添加以下命令来手动注册 QT 库的输出:

       "$(QTDIR)\bin\windeployqt.exe" "$(TargetPath)"

    这将使用 windeployqt.exe 工具自动复制 QT 库所需的运行时依赖项到项目输出目录中,并注册库文件。
    单击“确定”按钮保存更改。

    我没成功过。



2.2 用VS2022自带的cmd

<path_to_qt>\bin\windeployqt.exe       <path_to_output_binary>

其中 <path_to_qt> 是 QT 安装目录,<path_to_output_binary> 是 ATL COM 项目的输出二进制文件路径。

 D:\QT\Qt5.14.2\5.14.2\msvc2017_64\bin\windeployqt.exe  D:\Source\repos\UnifiedRegistInterface\x64\Debug\UnifiedRegistInterface.dll

3.ATL-QT项目


3.1创建一个ATL工程ATLProject-QT






3.2添加ATL简单对象






3.3在ATLIDL方法的添加



类视图->类向导


选择上面,出现的是一般 “添加方法” 对话框

选择下面一个,出现的是一般 “添加IDL方法” 对话框

如果ATL项目支持MFC 出现的是“添加 IDL MFC 方法”对话框



返回类型必须是 :HRESULT

在 ATLObject.h中添加声明

STDMETHOD(in2out)(BSTR in, BSTR out);



在 ATLObject.cpp中添加定义
 

STDMETHODIMP CATLObject::in2out(BSTR in, BSTR out)
{
     return S_OK;
}

4.无法注册

只要添加QT的库编译就会出现


解决方法: 在属性中设置-》“逐用户重定向”-》选“是” 无效.

把需要用的.dll和lib文件放到文件夹下即可:

5.组件是否注册成功:



在Windows操作系统中,按下Win键 + R键,然后输入"regedit"并按回车键,将打开注册表编辑器。



对应的代码
https://download.csdn.net/download/aggie4628/88764832

  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值