3

私は奇妙な問題を抱えています。MFC で openGL を使用して素敵なゲームを開発しています。マルチサウンドにはスレッドを使用する必要があります。そのためにBASSライブラリを使用しようとしています。

私の理解を超えた理由で、bass.lib をリンクできません。他のすべてのライブラリ (openGL ライブラリなど) は完全にリンクします。

  1. *.h MFC ダイアログ ファイルに "#include "base.h" を追加しました (.cpp と .h の両方を試しました)。

  2. cpp ファイルで宣言されたスレッドにグローバル関数を使用しています。

    UINT SetMusicThread(LPVOID Param);

  3. 「onInitDialog()」で新しいスレッドを呼び出す:

    AfxBeginThread(SetMusicThread,GetSafeHwnd(),THREAD_PRIORITY_NORMAL,0,0,NULL);

  4. 今のところ、関数は最初のストリームを開始しようとしているだけです: ステップごとに設定しようとしているだけです:

    UINT SetMusicThread(LPVOID Param) { //soundTrack* sound = (soundTrack*)Param;

    // 音楽へのハンドルを作成します。 str=BASS_StreamCreateFile(FALSE,Sound[SoundPosition],0,0,0); // 有効かどうかを確認します if(!str) { // 有効ではありません。無料のオブジェクト //FreeMusicThread(); FALSE を返します。} }

  5. str はグローバル HSTEAM です。

  6. プログラムは正常にコンパイルされますが、メッセージとリンクしません:

    エラー 6 エラー LNK2019: 未解決の外部シンボル _BASS_StreamCreateFile@20 が関数で参照されています "unsigned int __cdecl SetMusicThread(void *)" (?SetMusicThread@@YAIPAX@Z) MonstersDlg.obj Monsters

  7. bass.lib を「Addisionals の依存関係」に追加し、それを自分のプロジェクトと SDK ライブラリの LIB の両方に配置しようとしました....私が考えることができるすべてのことを試しました....

誰でも私を助けてくれませんか....何が欠けていますか???

10倍

4

1 に答える 1

1

bass.h は静的ライブラリを作成すると思います。

(プロジェクトが開いている間に) SDK を押して、実際のライブラリをプロジェクトに追加する必要があります: [プロジェクト] -> [設定]、[リンク] タブを押して、オブジェクト/ライブラリ モジュールで、bass.lib の実際のパスを追加します。(手順は VS 5.0 に関するものであるため、新しい SDK バージョンでは差異が存在する可能性があります)

于 2010-07-16T13:29:31.817 に答える