どのように私はWindows上でC ++アプリケーションにPDCursesをリンクするのですか?
質問
私はC ++アプリケーションを構築し、Windows上でPDCursesを使用する必要がありますよ。私はMS VS 2005からVC ++でコンパイルしていると私はリンクエラーを取得しています。
error LNK2019: unresolved external symbol __imp__GetKeyState@4 referenced in function __get_key_count
すべて同じエラーコードと異なる記号を持つ11個のエラーがあります。不足しているシンボルが16 @ 8、__imp__FindWindowA 8 @、__imp__wsprintfA、__imp__SendMessageA @ __imp__MapVirtualKeyAあり、__imp__GetWindowThreadProcessId @ 8、__imp__MessageBeep @ 4。それはほとんどVC ++のようなものである、これらの機能の適切なASCIIの実装を見つけることができません。私はまた、彼らはCのプログラムですが、細かいコンパイルPDCursesに付属しているデモプログラムことに注意する必要があります。
C ++プログラムでは、私が使用してヘッダを含む
extern "C"
{
#include <curses.h>
}
私はいくつかのC標準ライブラリにリンクすることを忘れてると確信しているが、私はどちらかわからない。
解決
GetKeyState()は、「user32.dllの」におけるWindowsの機能であるので、あなたは、あなたが「user32.lib」にリンクしていることを確認する必要があります。あなたは、あまりにも、それはリンカライブラリのリストにPDCursesライブラリの後に来ることを確認する必要がある場合があります。
他のヒント
あなたはあなたのマシン上でPDCursesを構築しました - MS VC ++で?もしそうなら、私は何か分かりません。そうでない場合は、何を使用していることはMS VC ++と互換性がないことをまともなチャンスがあります。別のC ++コンパイラからのコードを混合するはらんでいます。また、あなたが「他のいくつかのエラー」によって何を意味するかのビットを依存しています。それは、「エラーの数百人」のグロテスクな控えめな表現だ場合は、その可能性が高いのトラブルです。あなたは(たとえば、別の半ダースまたは少ない)ほんの数同様のエラーを持っている場合、トラブルになりにくいです。
USER32_LIB
、とuser32.libを含めた、私はsconsのを構築しています); さて、私はこれを考え出しました。窓のセクションでは、私は、私はむしろUSER32_LIb
よりUSER32_LIB
持っていた、タイプミスがありました。