一路探索者

导航

 

Qt窗口项目使用的源文件是.h/.cpp文件,它们是对应C++文件。在实际应用中,你可能有现成的.h/.c文件需要引用。那么,这些文件能够引用吗?又怎么引用呢?以下来讨论这个问题。

本例在ubuntu18中Qt5.8.0的Widgets项目编译通过,估计在CentOS和Windows系统也应该可以通过。

本例要引用的.h文件是myfile.h,一定要将它添加到项目中。项目中添加.h文件的最简便方法是,在项目的快捷菜单“添加-现有文件”来实现。

由于C、C++编译器对函数的编译处理是不完全相同,尤其对于C++来说,支持函数的重载,编译后的函数一般是以函数名和形参类型来命名的。因此,Qt调用C语言的文件时,有所区别。

宏__cplusplus主要解决C/C++混合编程问题,一般用法如下:

#ifdef __cplusplus

extern "C"{

    #include "xxx.h"

#endif

 

#ifdef __cplusplus

}

cpp文件默认定义了该宏,另外,extern "C"的主要作用是实现C++代码能够正确调用C语言代码。

 

本例的关键代码如下:

1、myfile.h文件

#include <stdio.h>

void printHello();

 

2、myfile.c文件

#include "myfile.h"

void printHello() {

    printf("Hello, World!\n");

}

 

3、main.cpp文件

#include "mainwindow.h"

#include <QApplication>

 

#ifdef __cplusplus

extern "C"{

    #include "myfile.h"

#endif

 

#ifdef __cplusplus

}

#endif

 

int main(int argc, char *argv[])

{

    //QApplication a(argc, argv);

    //MainWindow w;

    //w.show();

 

    //return a.exec();

 

    printHello(); // 调用C文件中实现的函数

    return 0;

}

posted on 2024-06-03 10:27  一路探索者  阅读(415)  评论(0)    收藏  举报