gpt4 book ai didi

c++ - 从 C 应用程序使用 Qt 库

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:48 25 4
gpt4 key购买 nike

有没有办法编写一个 qt 库,以便我可以在 C 应用程序中使用它(静态链接很好)?我的 C 代码庞大、陈旧,如果不进行大量工作,将无法转换为 C++。我这样说是因为其他类似的问题似乎在回答“只是让你的 C 代码成为 Qt 应用程序”。那不是一个选择。我希望我可以编写一个 qt 库,并以允许从 C 调用它的方式构建它(QLibrary 文档中提到的内容)。

The symbol must be exported as a C function from the library for resolve() to work. This means that the function must be wrapped in an extern "C" block if the library is compiled with a C++ compiler. On Windows, this also requires the use of a dllexport macro; see resolve() for the details of how this is done.

有人可以确认/否认我可以这样做,并让我知道我可以在库中放入多少“qt”吗?我不需要 GUI,但想使用一些 SQL 处理。

干杯

迈克

最佳答案

您可以根据需要将尽可能多的 Qt 放入库中,包括完整的 UI 功能。问题在于,由于您想从 C 代码访问它,因此您必须提供自己的访问函数,并且您的 C 函数将被限制为您提供的任何访问级别。

您甚至可以在 C 和 C++ 之间传递 Qt 对象指针,但您需要将它们转换为 C 可以编译的内容——void * 或最好是您自己的新类型定义(例如C_QString *)。对于 C 代码,这些指针将是不透明的,但它们仍然有效。

关于c++ - 从 C 应用程序使用 Qt 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6533380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com