【发布时间】:2009-11-07 01:37:41
【问题描述】:
我喜欢 Qt 是跨平台的,但我想制作一个可以调用某些 Windows 特定 .dll 的应用程序。有点像 Google Chrome 在 Windows Vista/7 上使用玻璃(我知道 Chrome 不是使用 Qt 框架编写的,只是认为这是一个很好的例子)。
如何在 Qt 中做到这一点?可行吗?
【问题讨论】:
标签: c++ windows qt dll cross-platform
我喜欢 Qt 是跨平台的,但我想制作一个可以调用某些 Windows 特定 .dll 的应用程序。有点像 Google Chrome 在 Windows Vista/7 上使用玻璃(我知道 Chrome 不是使用 Qt 框架编写的,只是认为这是一个很好的例子)。
如何在 Qt 中做到这一点?可行吗?
【问题讨论】:
标签: c++ windows qt dll cross-platform
是的,这没问题。你就去做吧! Qt 本身只是一个你调用的 DLL,它恰好在不同的平台上是相同的。只需链接到您喜欢的 DLL 并调用它们。
如果你愿意,使用 Qt 制作一个仅限 Windows 的应用程序并没有错。
【讨论】:
只要你手头有相关的 Windows SDK 头文件,并且可以链接到相应的库,那么混合和匹配 Qt 和 Win32 代码是很容易的。我使用 Qt Creator 进行 C++ 开发,它与 MinGW 一起提供,包括所有最常见的 Win32 SDK 头文件和库。你甚至可以用合适的#ifdefs 包装你的代码的 Windows 特定部分,以防你为不同的平台构建,例如:
#ifdef Q_OS_WIN
#include <windows.h>
void someWindowsSpecificFunc()
{
...
}
#endif // Q_OS_WIN
【讨论】:
您当然可以直接从 Qt 代码中调用 WinAPI 函数,那么最好包含 qt_windows.h 而不是 windows.h。
如果您只想将酷炫的 Windows 7 新功能添加到您的应用程序中,那么您最好使用专用的 Qt 插件。有一个叫Q7Goodies。
【讨论】:
勇敢地继续编写您的 Win 专用应用程序。您可以使用所有您想要的 Windows DLL。从这个意义上说,Qt 没有限制。您仍将受益于那些漂亮的 Qt 布局组件和可定制的皮肤。在换肤方面,没有比 Qt 更好的框架了。您的用户会喜欢您提供给他们的所有可调整大小的对话框。
【讨论】: