初めまして、ザヌオウと申します。
今、14歳からはじめるC言語ゲームプログラミングを見ながらDXライブラリを使用して、
十字キーでキャラを左右に動かすプログラムを書いたのですが、これをキーボード等から単音のMIDIデータを入力することで、例えばドを入力したら左に歩くといった感じに動かせるようにしたいと考えているのですが、
まずはどうすれば入力されたMIDIデータを認識できるようになるのかを教えていただきたいです。
自分の知識は上記の本と、10日で覚えるC言語という本をを一通り読んだ程度です。
どうかお力をお貸し下さい。
OS:Windows XP
開発環境:Visual c++
ライブラリ:DXライブラリ
MIDI入力でキャラを動かしたい
Re:MIDI入力でキャラを動かしたい
MIDIキーボードで MIDI INしたのを検知したいということですか?
であればこちらが参考になりそうです。
About MIDI INPUT for Visual C++
http://www.alles.or.jp/~minoc/dtm/midiin.htm
MIDI INプログラム
http://m-niwa.hp.infoseek.co.jp/store/midi_in.html
MIDIの入出力 (C Magazine9月号掲載)
http://www.ne.jp/asahi/nagoya/ahomaro/b ... b-062.html
であればこちらが参考になりそうです。
About MIDI INPUT for Visual C++
http://www.alles.or.jp/~minoc/dtm/midiin.htm
MIDI INプログラム
http://m-niwa.hp.infoseek.co.jp/store/midi_in.html
MIDIの入出力 (C Magazine9月号掲載)
http://www.ne.jp/asahi/nagoya/ahomaro/b ... b-062.html
Re:MIDI入力でキャラを動かしたい
返信が送れてすみませんでした。
色々とありがとうございます。
そしてそうです、MIDIキーボードからMIDI INしたのを検知したいのです。
そこで質問なのですが、
> MIDI INプログラム
> http://m-niwa.hp.infoseek.co.jp/store/midi_in.html
こちらに書いてあるものをコンパイルしますと、
(54)error C2065: 'HMidiIn' : 定義されていない識別子です。
(66)error C2664: 'midiInGetErrorTextW' : 2 番目の引数を 'char [255]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
(88) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
といったエラーが出てしまうのですが、
(54)のHMidiInのHをhに変えるとこのエラーは消えるのですが、
他をどうすればいいのかがわかりません。
初歩的なことを見落としているのだと思いますが、どうか教えていただけないでしょうか?
よろしくお願いします。
色々とありがとうございます。
そしてそうです、MIDIキーボードからMIDI INしたのを検知したいのです。
そこで質問なのですが、
> MIDI INプログラム
> http://m-niwa.hp.infoseek.co.jp/store/midi_in.html
こちらに書いてあるものをコンパイルしますと、
(54)error C2065: 'HMidiIn' : 定義されていない識別子です。
(66)error C2664: 'midiInGetErrorTextW' : 2 番目の引数を 'char [255]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
(88) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
といったエラーが出てしまうのですが、
(54)のHMidiInのHをhに変えるとこのエラーは消えるのですが、
他をどうすればいいのかがわかりません。
初歩的なことを見落としているのだと思いますが、どうか教えていただけないでしょうか?
よろしくお願いします。
Re:MIDI入力でキャラを動かしたい
これでビルドは通った。
http://codepad.org/flK4yipv
修正箇所には 修正 と入れてあるので検索してみて。
あと#pragma も入れてあるけど、これは無くてもいいかも。リンカエラーが出たら入れてみ。
使い方は良く分からないから動作確認はしていません。
ビルド環境は VisualC++2008 ExpressEdition
【 追記 】
質問者記事で書いてあるエラーは、C言語のソースコードをC++でコンパイルしたときに出るものだね。
ソースコードの拡張子を .cpp から .c にしたら状況変わるはず。

http://codepad.org/flK4yipv
修正箇所には 修正 と入れてあるので検索してみて。
あと#pragma も入れてあるけど、これは無くてもいいかも。リンカエラーが出たら入れてみ。
使い方は良く分からないから動作確認はしていません。
ビルド環境は VisualC++2008 ExpressEdition
【 追記 】
質問者記事で書いてあるエラーは、C言語のソースコードをC++でコンパイルしたときに出るものだね。
ソースコードの拡張子を .cpp から .c にしたら状況変わるはず。

Re:MIDI入力でキャラを動かしたい
>hogeさん
わざわざ修正までしてもらったのに一ヶ月以上ほったらかしにしてしまって大変失礼いたしました。
そしてありがとうございます。
しかし、それでもまだコンパイルしたときに、
LINK : warning LNK4199: /DELAYLOAD:OleAcc.dll は無視されます。OleAcc.dll にインポートがありません。
>LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数___tmainCRTStartup で参照されました。
といったものが出てきてうまく行きません。
これらのことを解決しようといろいろ考えて試していたのですが、
解決できませんでしたので、
どうかもう一度お力をお貸しいただけないでしょうか?
長い間本当に失礼いたしました。
わざわざ修正までしてもらったのに一ヶ月以上ほったらかしにしてしまって大変失礼いたしました。
そしてありがとうございます。
しかし、それでもまだコンパイルしたときに、
LINK : warning LNK4199: /DELAYLOAD:OleAcc.dll は無視されます。OleAcc.dll にインポートがありません。
>LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数___tmainCRTStartup で参照されました。
といったものが出てきてうまく行きません。
これらのことを解決しようといろいろ考えて試していたのですが、
解決できませんでしたので、
どうかもう一度お力をお貸しいただけないでしょうか?
長い間本当に失礼いたしました。