0

我有一个 Qt Gui 项目,它使用 C 和 C++ 形成混合语言。我必须在我的 C 源代码中使用 C++ 类函数。怎么称呼它?你能帮我吗?

要调用的 C++ 函数

 void MainWindow::putsDisplay(int Line, char *string)
{
    if(Line == 0)
    {
        ui->customerLine_1->setPlainText(string);
    }

    if(Line == 1)
    {
        ui->customerLine_2->setPlainText(string);
    }

    if(Line == 2)
    {
        ui->cashierLine_1->setPlainText(string);
    }

    if(Line == 3)
    {
        ui->cashierLine_2->setPlainText(string);
    }

    if(Line == 4)
    {
        ui->printerArea->setPlainText(string);
    }
}
4

2 回答 2

1

您不能直接使用 C++ 方法,您必须创建一个函数才能调用对象的方法。这是一个示例(C++ 文件的一部分):

extern C 
{

    void   example(int Line, char *string)
    {
       static MainWindow win;

       win.putsDisplay(Line, string); 
    }

}

C代码:

int main()
{
    example(42, "it is an example");
    return 0;
}

extern C将禁用名称修饰,因此example()可以从 C 代码中调用。您可以保留static MainWindow win;,或将其设为全局或其他,但您将需要一个MainWindow对象。

于 2013-08-01T14:26:09.007 回答
0

请记住,C 是 C++ 的子集。

您可以将具有 C 代码的文件命名为 xC 或 x.cpp,然后使用 c++ 编译器将其与其余文件一起编译。然后您将能够从 C 代码调用 C++ 方法。

于 2013-08-02T14:04:28.860 回答