这是一个混乱的问题,希望你能弄清楚我想要什么:)
在 Qt 开源版项目中使用 Win32 功能的最佳方式是什么?
目前我已经包含了必要的 Windows SDK 库并手动将目录包含到 qmake 项目文件中。它在小规模上运行良好,但不方便且麻烦。
那么,我应该将 Win32 的东西分离到一个库中,还是有一种将这两者结合起来的明智方法?还是我只是忽略了一些简化这一点的 Qt 方面?
编辑
删除了语法的东西,它并不真正相关,只是烦人。
您可以构建一个接口层来包装 Win32 功能并在 DLL 或静态库中提供它。DLL 将最大限度地减少使用您的 qmake 项目直接链接到 Win32 库的需要。创建这样的通用接口然后将平台特定数据隐藏在私有实现中会更符合 Qt 的可移植性。奇趣科技通常使用pimpl 成语来完成此类任务。因此,请查看 Qt 源代码以查看示例(即查找“d”指针)。
LPCWSTR 应该不是问题;这只是一个愚蠢的名字wchar_t const*
。LPARAM 也不是问题,您可以将它们存储很长时间。当然,这些只是 C++ 类型,而不是 Qt。但 Qt 仍然可以处理它们。
VS 集成,据我了解,它与 Visual Studio IDE 相关,而不是 (V)C++ 语言。
您可以在 .pro 文件中使用 win32 范围;
win32:HEADERS+=mywinheader.h
或使用 .pri (pro include) 文件将其进一步划分;
win32:include( mywinpri.pri )
正如 monjardin 所描述的,您通常会将此方法与 PIMPL 习语一起使用