我已下载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");
不知道从哪里开始。 再次感谢。
答案 0 :(得分:0)
如果我没有弄错(我可以很容易),那是因为C / C ++的调用约定不同。尝试将回调设置为extern“C”,并使它们调用C ++函数。称之为蹦床:)
答案 1 :(得分:0)
终于搞定了。解决方案如下:
首先我将tui.c重命名为tui.cpp
对于标题tui.h,我按照完全步骤包装代码here.
然后在我的项目中我只包括没有任何外部“C”块的标题
#include "tui.h"
已编译并且有效!