MIDI入力でキャラを動かしたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ザヌオウ

MIDI入力でキャラを動かしたい

#1

投稿記事 by ザヌオウ » 15年前

初めまして、ザヌオウと申します。

今、14歳からはじめるC言語ゲームプログラミングを見ながらDXライブラリを使用して、
十字キーでキャラを左右に動かすプログラムを書いたのですが、これをキーボード等から単音のMIDIデータを入力することで、例えばドを入力したら左に歩くといった感じに動かせるようにしたいと考えているのですが、
まずはどうすれば入力されたMIDIデータを認識できるようになるのかを教えていただきたいです。

自分の知識は上記の本と、10日で覚えるC言語という本をを一通り読んだ程度です。
どうかお力をお貸し下さい。

OS:Windows XP
開発環境:Visual c++
ライブラリ:DXライブラリ

Justy

Re:MIDI入力でキャラを動かしたい

#2

投稿記事 by Justy » 15年前

 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

ザヌオウ

Re:MIDI入力でキャラを動かしたい

#3

投稿記事 by ザヌオウ » 15年前

返信が送れてすみませんでした。
色々とありがとうございます。

そしてそうです、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に変えるとこのエラーは消えるのですが、
他をどうすればいいのかがわかりません。
初歩的なことを見落としているのだと思いますが、どうか教えていただけないでしょうか?
よろしくお願いします。

hoge

Re:MIDI入力でキャラを動かしたい

#4

投稿記事 by hoge » 15年前

これでビルドは通った。

http://codepad.org/flK4yipv

修正箇所には 修正 と入れてあるので検索してみて。
あと#pragma も入れてあるけど、これは無くてもいいかも。リンカエラーが出たら入れてみ。

使い方は良く分からないから動作確認はしていません。
ビルド環境は VisualC++2008 ExpressEdition

【 追記 】
質問者記事で書いてあるエラーは、C言語のソースコードをC++でコンパイルしたときに出るものだね。
ソースコードの拡張子を .cpp から .c にしたら状況変わるはず。
画像

ザヌオウ

Re:MIDI入力でキャラを動かしたい

#5

投稿記事 by ザヌオウ » 15年前

>hogeさん
わざわざ修正までしてもらったのに一ヶ月以上ほったらかしにしてしまって大変失礼いたしました。
そしてありがとうございます。

しかし、それでもまだコンパイルしたときに、
LINK : warning LNK4199: /DELAYLOAD:OleAcc.dll は無視されます。OleAcc.dll にインポートがありません。
>LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数___tmainCRTStartup で参照されました。
といったものが出てきてうまく行きません。

これらのことを解決しようといろいろ考えて試していたのですが、
解決できませんでしたので、
どうかもう一度お力をお貸しいただけないでしょうか?

長い間本当に失礼いたしました。

閉鎖

“C言語何でも質問掲示板” へ戻る