如何链接PDCurses到Windows上的C ++应用程序?
题
我要建一个C ++应用程序,需要在Windows上使用PDCurses。我用VC从MS VS 2005编译和我得到一个链接错误。
error LNK2019: unresolved external symbol __imp__GetKeyState@4 referenced in function __get_key_count
有11米都具有相同的错误代码和不同的符号的误差。丢失的符号是__imp__MapVirtualKeyA @ 8,__imp__FindWindowA @ 8,__imp__wsprintfA,__imp__SendMessageA @ 16 @ __imp__GetWindowThreadProcessId 8,__imp__MessageBeep @ 4。这是几乎像VC ++无法找到这些功能的适当的ASCII实现。我还要指出的是随之而来的PDCurses演示程序编译正常,虽然他们是C程序。
在C ++程序,我包括使用标头
extern "C"
{
#include <curses.h>
}
我敢肯定,我忘了对一些C标准库链接,但我不知道是哪一个。
解决方案
函数GetKeyState()是在“user32.dll中的”在Windows功能,所以你需要确保你链接到的“USER32.LIB”。您可能还需要确保它有链接库列表中PDCurses库后,太。
其他提示
你你的机器上建立PDCurses - 与MS VC ++?如果是这样,我不知道这是怎么回事。如果没有,那么有一个像样的机会,你正在使用的不是与MS VC ++兼容。从不同的C ++编译器混合代码充满。这也取决于你的意思是“几个其他错误”什么了一下。如果这是对“数百个错误的”怪诞轻描淡写,那么这很可能是麻烦。如果你只有很少的(比如另一半打或更少)类似的错误,那么它是不太可能的麻烦。
好的,我想通了这一点)我正在与scons的构建,我是包括具有可变USER32_LIB
,USER32.LIB缺省为除了在那里它被定义为USER32.LIB窗口空字符串。在窗户部分,我有一个错字,我USER32_LIb
而非USER32_LIB
。