0

C++ アプリケーションを作成していて、Windows で PDCurses を使用する必要があります。MS VS 2005 の VC++ でコンパイルすると、リンク エラーが発生します。

 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 実装を見つけられないのとほとんど同じです。また、C プログラムですが、PDCurses に付属するデモ プログラムは問題なくコンパイルされていることにも注意してください。

C++ プログラムでは、次を使用してヘッダーをインクルードします。

extern "C" 
{ 
    #include <curses.h> 
}

C標準ライブラリへのリンクを忘れているのは確かですが、どのライブラリかわかりません。

4

3 に答える 3

2

GetKeyState() は「user32.dll」の Windows 関数であるため、「user32.lib」に対してリンクしていることを確認する必要があります。また、リンカー ライブラリのリストで PDCurses ライブラリの後に来ることを確認する必要がある場合もあります。

于 2008-12-30T06:42:30.890 に答える
1

あなたのマシンで MS VC++ を使って PDCurses をビルドしましたか? もしそうなら、私は何が起きているのか分かりません。そうでない場合は、使用しているものが MS VC++ と互換性がない可能性があります。異なる C++ コンパイラのコードを混在させると、問題が発生します。また、「その他のいくつかのエラー」の意味にも少し依存します。それが「何百ものエラー」のグロテスクな控えめな表現である場合、それが問題である可能性があります。同様のエラーが数個 (さらに半ダース以下) しかない場合は、問題になる可能性は低くなります。

于 2008-12-30T06:43:56.333 に答える
0

さて、私はこれを理解しました;)私はsconsで構築しています.user32.libUSER32_LIBに定義されているウィンドウを除いて、空の文字列にデフォルト設定されている変数でuser32.libを含めていました. Windows セクションで、タイプミスがUSER32_LIbありましたUSER32_LIB

于 2008-12-31T00:03:05.533 に答える