
rc = waveInPrepareHeader(hwi,lpwh,sizeof(WAVEHDR));
のあと、「無効なパラメータがシステム機能に渡されました」となってしまいます。
ちなみに返ってきている値は「11」で、
どのエラーにもあてはまらないようです。
いったい何が原因なのか、
そして、どうすればいいのかがさっぱりわからず、困っています。
誰か教えてください‥‥‥。
デバイスのオープンは出来ている感じです‥‥。
変数の宣言(?)はプログラムの最初に、以下のように設定しています。
WAVEHDR wh;
HWAVEIN hwi;
HWND hWnd;
WAVEFORMATEX wfx;
MMRESULT rc;
LPWAVEHDR lpwh;
もし、必要な情報が不足しているならいって下さい。
質問の意味がわからない、とか‥‥‥。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ずいぶん時間がたっていますが、もう解決されたでしょうか?
実際に使ったことはないのですが、ドキュメント&サンプルをみた範囲で。
エラーは MMSYSERR_INVALPARAM(11)でパラメータエラーです。
怪しそうなのは
>デバイスのオープンは出来ている感じです。
ということですが、waveInOpen()は成功していますか。
DATABLOCK_SIZEっていくつでしょう。
VC++のヘルプで waveInPrepareHeader を調べると
DIALOGS.C (コード)
DDREC.EXE (ダウンロード先)
があるので参考までに。
この回答への補足
相変わらず返事が遅くてすいません。
まだ解決していないのでまた補足させていただきます。
waveInOpen()は成功しているようです。
そのすぐあとにつけているprintf()が働いているので‥‥。
DATABLOCK_SIZEは327680Lです。
参考にしたプログラムにのっていた値そのままです(苦笑)。
ところで、VC++のヘルプとは、
マイクロソフトのHP上にあるのでしょうか?
それともVC++のヘルプキーからでしょうか?
どうもDIALOGS.Cとかは見当たらないのですが‥‥。
No.1
- 回答日時:
まったく WAVE 関連はやったことが無いのですが、質問の範囲から
ありそうな間違いを。
> WAVEHDR wh;
> LPWAVEHDR lpwh;
> rc = waveInPrepareHeader(hwi,lpwh,sizeof(WAVEHDR));
lpwh = &wh;
rc = waveInPrepareHeader(hwi,lpwh,sizeof(WAVEHDR));
ってやってますか?
後、他の API でもよくありがちな話として、
・WAVEHDR は、0でクリアしておく
・WAVEHDR がバージョンのような数字をメンバに持っていて、それが不当
・WAVEHDR のメンバで領域を割り当てておくようなところがあって、それをやってない
なんてところを思いつきますが。
# WAVE 未経験ですが、一応、計算機屋の端くれなので「専門家」にチェックを入れてます
この回答への補足
返事が遅くなりましてもうしわけありません。
lpwh=&wh;
は、やっていませんでした。
でも、追加して実行しても結果は変わりませんでした‥‥。
WAVEHDRは0でクリアしてあります。
>・WAVEHDR がバージョンのような数字をメンバに持っていて、それが不当
>・WAVEHDR のメンバで領域を割り当てておくようなところがあって、それをやってない
の2点に関しては‥‥‥意味がよくわかりません‥‥。
ZeroMemory(&wh,sizeof(WAVEHDR));
wh.lpData = (char *)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,DATABLOCK_SIZE);
wh.dwBufferLength = DATABLOCK_SIZE;
ということはやっているのですが、これでは不十分でしょうか‥‥?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
【VBA】ワークブックを開く時に...
-
実行時エラー 438 の解決策をお...
-
文字列内で括弧を使うには
-
Filter関数を用いた結果、何も...
-
String""から型'Double'への変...
-
VB2008 comboboxを連動させた...
-
VBA データ(特定値)のある最...
-
「実行時エラー '3167' レコー...
-
ApplicationとWorksheetFunctio...
-
インポート時のエラー「データ...
-
On ErrorでエラーNoが0
-
VBAでのファイル読込エラー...
-
【VBA】findの検索条件における...
-
VBAで、Excelの選択範囲をWeb形...
-
pythonのopenpyxlについて
-
演算子が DBnull 及び integer...
-
PL/SQLでファンクション名に変...
-
VBAでfunctionを利用しようとし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
【VBA】ワークブックを開く時に...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
実行時エラー 438 の解決策をお...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
レコード登録時に「演算子があ...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
ApplicationとWorksheetFunctio...
-
On ErrorでエラーNoが0
-
Excel vbaについての質問
-
ACCESSで値を代入できないとは?
-
VBA データ(特定値)のある最...
-
【VBAエラー】Nextに対するFor...
-
「実行時エラー '3167' レコー...
-
実行時エラー'-2147467259(8000...
おすすめ情報