在Qt OSE项目中使用Win32 API

时间:2008-12-15 09:11:53

标签: c++ windows winapi qt qt4

这是一个混乱的问题,希望你能弄清楚我想要的东西:)

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

目前,我已经包含了必要的Windows SDK库,并手动将目录包含在qmake项目文件中。它在小规模上工作正常,但不方便且麻烦。

那么,我应该将Win32的东西分成一个库还是有一种合理的方法来组合这两个?或者我只是忽略了一些简化这个问题的Qt方面?

修改

删除了语法内容,它不太相关,只是讨厌。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

VS集成,据我所知,它与Visual Studio IDE有关,而与(V)C ++语言无关。

答案 2 :(得分:0)

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

win32:HEADERS+=mywinheader.h

或.pri(pro include)文件将其划分更多;

win32:include( mywinpri.pri )

你通常会使用这个apprpoach与PIMPL惯用法,因为monjardin描述