自作スタティックリンクライブラリ中でmciSendString関数を使用するには?

解決


田中  2009-07-23 07:23:31  No: 70645

VC++6.0+winXP環境でプログラムしています。

AppWizeardを利用して自作のスタティックリンクライブラリを作成したところ、ス
タティックリンクライブラリ自体のビルドはうまくいったのですが、それを利用し
たプログラムのビルド時に、プログラム中で使用しているmciSendString関数に関
するエラーが出ました。

そこで次のような確認を行いました。
  1  まず、メッセージダイアログを表示するだけのスタティックライブラリを作成。
  2  そのライブラリを利用するだけのダイアログベースのプログラムを作成し、
正常に動作することを確認。
  3  上記のスタティックライブラリ中のメッセージボックスを表示する部分を削
除し、以下のプログラムを記述…
      long lngRet;
      lngRet = mciSendString("open test.wav alias music", NULL, 0, 

NULL);
      lngRet = mciSendString("play music", NULL, 0, NULL);
  4  3で作成したライブラリを利用するだけのプログラムを作成しビルドすると
、以下のエラーが表示されました(test15はスタティックライブラリのクラス名、
test17はそれを利用するプログラム名)。
      test15.lib(test15.obj) : error LNK2001: 外部シンボル __imp__mciSendStringA@16" は未解決です
      Debug/test17.exe : fatal error LNK1120: 外部参照 1 が未解決す。

自作スタティックリンクライブラリ中でmciSendString関数を使用する場合には、

特別な設定等が必要なのでしょうか。
上記の件についてアドバイスをいただけないでしょうか、宜しくお願いいたします。


επιστημη  URL  2009-07-23 07:52:56  No: 70646

Winmm.lib をリンクしてないんじゃないかしら?


瀬戸っぷ  2009-07-23 07:58:02  No: 70647

>test15.lib(test15.obj) : error LNK2001: 外部シンボル __imp__mciSendStringA@16" は未解決です

http://msdn.microsoft.com/ja-jp/library/cc410496.aspx
>インポートライブラリ:Winmm.lib を使用
ってコトで、winmm.libのリンクも必要なのでは?


田中  2009-07-23 21:18:24  No: 70648

επιστημηさん、瀬戸っぷさんResをありがとうございます。

所有のMSDNが古いためか、ヘッダーやリンクの情報が記載されておらず、ネ
ット上でMmsystem.hの情報だけは取得できていたのですが、Winmm.libの情報
は取得できていませんでした。
これからはオンライン上のMSDNを利用しようと思います。

どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加