PDCurses getmouse没有收到任何参数?

时间:2018-01-02 19:52:35

标签: visual-studio pdcurses

我在Windows中使用PDCurses和Visual Studio 2017.该库是使用MSVC编译器编译的,我根据README使用它编制了win32a版本。我做了一些测试,并能够将库链接到一些小型测试程序。

然后我尝试测试this howto中找到的关于如何使用鼠标的示例,但Visual Studio告诉我getmouse函数没有收到任何参数(它应该收到MEVENT* }参数)。 Intellisense指出我的声明

unsigned long getmouse(void);

curses.h我找到了位

#ifdef NCURSES_MOUSE_VERSION
# define getmouse(x) nc_getmouse(x)
#endif

nc_getmouse确实收到了正确的论点:

int     nc_getmouse(MEVENT *);

也许我在构建库时忘了设置一些选项?

有人可以在这里给我一个指导吗?这是我第一次使用这个库。

1 个答案:

答案 0 :(得分:0)

好吧,您使用的是ncurses鼠标API,而不是本机PDCurses API。这很好,但是如果你想这样做,你应该在包含curses.h之前#define NCURSES_MOUSE_VERSION。来自PDCurses文档:

nc_getmouse() returns the current mouse status in an MEVENT
struct. This is equivalent to ncurses' getmouse(), renamed to
avoid conflict with PDCurses' getmouse(). But if you define
NCURSES_MOUSE_VERSION (preferably as 2) before including
curses.h, it defines getmouse() to nc_getmouse(), along with a
few other redefintions needed for compatibility with ncurses
code. nc_getmouse() calls request_mouse_pos(), which (not
getmouse()) is the classic equivalent.