【问题标题】:Using Win32 API in Qt OSE project在 Qt OSE 项目中使用 Win32 API
【发布时间】:2010-09-26 22:31:50
【问题描述】:

这是一个乱七八糟的问题,希望你能弄清楚我想要什么:)

在 Qt 开源版项目中使用 Win32 功能的最佳方式是什么?

目前我已经手动包含了必要的 Windows SDK 库和包含目录到 qmake 项目文件。它在小规模上运行良好,但不方便且麻烦。

那么,我应该将 Win32 的东西分离到一个库中,还是有一种将这两者结合起来的明智方法?还是我只是忽略了一些简化这一点的 Qt 方面?

编辑

删除了语法的东西,它并不真正相关,只是烦人。

【问题讨论】:

    标签: c++ windows winapi qt qt4


    【解决方案1】:

    您可以在 .pro 文件中使用 win32 范围;

    win32:HEADERS+=mywinheader.h
    

    或使用 .pri (pro include) 文件将其进一步划分;

    win32:include( mywinpri.pri )
    

    您通常会将此方法与 monjardin 描述的 PIMPL 习语一起使用

    【讨论】:

      【解决方案2】:

      您可以构建一个接口层来包装 Win32 功能并在 DLL 或静态库中提供它。 DLL 将最大限度地减少使用 qmake 项目直接链接到 Win32 库的需要。创建这样的通用接口然后将平台特定数据隐藏在私有实现中会更符合 Qt 的可移植性。奇趣科技通常使用pimpl idiom 来完成此类任务。因此,请查看 Qt 源代码以查看示例(即查找“d”指针)。

      【讨论】:

        【解决方案3】:

        LPCWSTR 应该不是问题;这只是wchar_t const* 的愚蠢名称。 LPARAM 也不是问题,您可以将它们存储很长时间。当然,这些只是 C++ 类型,而不是 Qt。但 Qt 仍然可以处理它们。

        VS 集成,据我了解,它与 Visual Studio IDE 相关,而不是 (V)C++ 语言。

        【讨论】:

        • 聚焦问题,我知道这些typedef,只是将它们作为额外的烦恼。
        猜你喜欢
        • 2012-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多