gpt4 book ai didi

c++ - PDCurses TUI C++ Win32 控制台应用程序 - 访问冲突读取位置

转载 作者:太空宇宙 更新时间:2023-11-04 04:57:59 24 4
gpt4 key购买 nike

我已经下载pdcurses源,并能够成功地将 curses.h 包含在我的项目中,链接预编译库,一切都很好。

试用该库几个小时后,我在 demos 文件夹中看到了 tuidemo.c,将其编译成可执行文件,非常棒!正是我的项目所需要的。

现在的问题是它是一个 C 代码,我正在 VS c++ 2008 中开发一个 C++ 项目。

我需要的文件是tui.c和tui.h如何在我的 C++ 代码中包含该 C 文件?我看到了few suggestions here

但是编译器对 100 条警告和错误不太满意。

我怎样才能继续包含/使用 TUI pdcurses 包含的内容!?

谢谢

编辑:

我添加了 extern "C"语句,所以我的测试现在看起来像这样,但是我遇到了一些其他类型的错误

#include <stdio.h>
#include <stdlib.h>
using namespace std;

extern "C" {
#include <tui.h>
}

void sub0()
{
//do nothing
}

void sub1()
{
//do nothing
}


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

menu MainMenu[] =
{
{ "Asub", sub0, "Go inside first submenu" },
{ "Bsub", sub1, "Go inside second submenu" },
{ "", (FUNC)0, "" } /* always add this as the last item! */
};
startmenu(MainMenu, "TUI - 'textual user interface' demonstration program");

return 0;
}

虽然它编译成功,但它在运行时抛出一个错误,这表明一个错误的指针:

0xC0000005: Access violation reading location 0x021c52f9

在线

startmenu(MainMenu, "TUI - 'textual user interface' demonstration program");

不知道从这里去哪里。再次感谢。

最佳答案

如果我没记错(我很可能会记错),那是因为 C/C++ 的调用约定不同。尝试将回调设为外部“C”,并让它们调用 C++ 函数。称之为蹦床:)

关于c++ - PDCurses TUI C++ Win32 控制台应用程序 - 访问冲突读取位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3044603/

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