どのように私はWindows上でC ++アプリケーションにPDCursesをリンクするのですか?

StackOverflow https://stackoverflow.com/questions/399538

質問

私は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、とuser32.libを含めた、私はsconsのを構築しています);

さて、私はこれを考え出しました。窓のセクションでは、私は、私はむしろUSER32_LIbよりUSER32_LIB持っていた、タイプミスがありました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top