Qt中调用C

工作时遇到了要在C++中调用C,以前都是书上遇到的....所以记录一下:

 

头文件:gst-player.h

#ifdef __cplusplus
extern "C"{
#endif

..................

 

#ifdef __cplusplus
}
#endif

 

C文件:gst-player.c


#include "gst-player.h"

#ifdef __cplusplus
extern "C" {
#endif

.................


#ifdef __cplusplus
}
#endif

 

C++中:

#include "gst-player.h"

..................................

 

然后直接调用即可!

 

 

### 如何在 Qt Creator 中集成和调用 C 语言代码 要在 Qt Creator 中集成并调用 C 语言代码,可以通过以下方式实现: #### 1. 创建混合项目支持 C 和 C++ Qt 支持 C++ 编程语言为主,但在 `.pro` 文件中可以指定额外的选项来允许编译器处理纯 C 代码。通过修改项目的 `.pro` 文件,添加 `CONFIG += c99` 或者其他适合的标准配置[^5]。 ```plaintext QT -= gui TEMPLATE = app TARGET = my_c_project # 添加 C 标准的支持 CONFIG += console c99 # 设置头文件路径 INCLUDEPATH += ./c_code_headers # 设置源文件列表 SOURCES += \ main.cpp \ ./c_code_sources/my_c_function.c HEADERS += \ ./c_code_headers/my_c_function.h ``` 此配置告诉构建系统该项目不仅包含 C++ 源码还包含 C 源码,并指定了标准为 C99[^6]。 #### 2. 使用 extern "C" 处理名称修饰问题 当从 C++ 调用 C 函数时,需防止 C++ 对函数名进行名称修饰(name mangling)。为此,在 C 头文件中应使用 `extern "C"` 来声明这些函数。 ```c // my_c_function.h #ifndef MY_C_FUNCTION_H #define MY_C_FUNCTION_H #ifdef __cplusplus extern "C" { #endif void performAction(); #ifdef __cplusplus } #endif #endif // MY_C_FUNCTION_H ``` 这样定义可确保该头文件能被 C 和 C++ 程序正确解析[^7]。 #### 3. 实现 C 函数并与 C++ 结合 编写实际的 C 函数逻辑,并在 C++ 主程序中调用它。 ```c // my_c_function.c #include "my_c_function.h" #include <stdio.h> void performAction() { printf("This is a pure C function.\n"); } ``` 随后在主 C++ 应用中调用这个 C 函数。 ```cpp // main.cpp #include <QCoreApplication> #include "my_c_function.h" int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); // 调用 C 函数 performAction(); return app.exec(); } ``` 以上步骤展示了如何将 C 代码无缝嵌入到基于 Qt 的应用程序中[^8]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值