mci系の命令やPlaySoundが通らない。 – プログラミング – Home

mci系の命令やPlaySoundが通...
 
通知
すべてクリア

mci系の命令やPlaySoundが通らない。


たけ
 たけ
(@たけ)
ゲスト
結合: 25年前
投稿: 116
Topic starter  

VS2005のC++のWindowsのモードで
ビルドをかけました。
リンク時に下記のエラーが出ました。
何が悪いのでしょうか?

1>Rec_v.obj : error LNK2019: 未解決の外部シンボル __imp__mciGetErrorStringA@12
が関数 _WndProc@16 で参照されました。
1>Rec_v.obj : error LNK2019: 未解決の外部シンボル __imp__PlaySoundA@12 が関数
_WndProc@16 で参照されました。
1>Rec_v.obj : error LNK2019: 未解決の外部シンボル __imp__mciSendCommandA@16
関数 _WndProc@16 で参照されました。


引用解決済
トピックタグ
ロマ
 ロマ
(@ロマ)
ゲスト
結合: 18年前
投稿: 170
 

「インポートライブラリ:Winmm.lib を使用」

なので、Winmm.libをリンクする必要があると思います。


返信引用
たけ
 たけ
(@たけ)
ゲスト
結合: 25年前
投稿: 116
Topic starter  

ロマさん

さっそくのご回答、ありがとうございます。
しかし、
うーん。
それも、下記のようにやっているのですが。

#include <MMSystem.h>
#pragma comment(lib, Winmm.lib)


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 18年前
投稿: 178
 

そういう現象に遭遇したことはありませんが…

http://blog.livedoor.jp/blackwingcat/archives/1114627.html

なんて例もあるようです。

あと……ライブラリファイル名は"で括らなくていいんですかね?
# 手元のVS2005Stdでは括らないとリンクエラーでしたが。


返信引用
・ス・ス・ス・ス
 ・ス・ス・ス・ス
(@・ス・ス・ス・ス)
ゲスト
結合: 11年前
投稿: 1
 

皆さん。わかりました。わかりました。
コンパイルは通るものの、
#pragma comment(lib, winmm.lib)
とすべきところを、
#pragma comment(lib, winmm.lib)
と言うように、ダブルクオーテーションを
省かせると、
リンクのところで、
PlaySoundやmci命令を認識しないようでした。
Borland C++あたりでは通っていますが、
Visual StudioのC++バージョンあたりだと
だめなようです。
しかし、
その先、走らせて問題が発生しました。
録音命令のところですが、
順調に録音していたように見えて、
いざ、録音終了させようと思うと、
録音終了ボタンを押し、ID_REC_END
に入って来たとたん、
case ID_REC_END: // Recording Termination Routine
msp.dwCallback = (DWORD)hWnd;
msp.lpfilename = strFile;

mciSendCommand(mop.wDeviceID , MCI_STOP , MCI_WAIT , 0);
mciSendCommand(mop.wDeviceID , MCI_SAVE ,
MCI_WAIT | MCI_SAVE_FILE , (DWORD)&msp);
EnableWindow(GetDlgItem(hWnd , ID_REC) , TRUE);
EnableWindow(GetDlgItem(hWnd , ID_REC_END) , FALSE);
の中の4番目の命令、
mciSendCommand(mop.wDeviceID , MCI_SAVE ,
MCI_WAIT | MCI_SAVE_FILE , (DWORD)&msp);
で、下記の警告を出して、ハング、
Real_5Vowel_Rec.exe の 0x7306bb5e でハンドルされていない例外が発生しました:
0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。
で、中断、これ以上動かず、
実際には、.wavファイルに、録音データの
書き込みは失敗したようです。

ここは、どこがおかしいと考えればいいでしょうか。
この命令も、Borland C++では動いているのですが、
Visual Studio 2005に持って来た、とたんfailしましたのです。
再度、お騒がせしまして、申し訳ありません。


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 18年前
投稿: 178
 

デバッグは自分でやって欲しいところですがね……

mopとmspは何者です?
寿命とか問題ないんでしょうね?
というか、現象を確認できる最低限のソースを掲示した方が早そうですが。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました