- ベストアンサー
USBのI/Oに必要なもの
VC++6.0でUSBのI/O処理を作らないといけないのですが、VC++だけでできますでしょうか? (SDK,DLLとか必要なものがありますか?) 以上 回答をお待ちしております
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
この本にドライバーの作成方法など詳しく載っています。一読される事をお勧めします。
その他の回答 (5)
- terra5
- ベストアンサー率34% (574/1662)
私は実際にはUSBドライバは作ったことなくて、予備調査しただけですので、詳しくはわかりませんが。 USBのドライバと言った場合、USB制御チップのドライバ(ホストドライバ)と、それを使ってターゲットのUSBデバイスを制御するドライバ(クライアントドライバ)があります。 単に通信(i/o)するだけなら、ホストドライバだけでも可能だろうと思いますが、どこから何を読むと何が帰ってくるか、どこに何を書くとどうなるかは、携帯側の仕様がわからないと無理だろうと思いますが。 あと#1の方の回答にある本のような物は読んでおく必要があると思います。 USBの通信、制御は、コントロール転送、バルク転送、割り込み転送等で行いますから、これの意味と使い方はわからないと無理じゃないかと。 もし、汎用ドライバで対応できるなら、キーボードとして認識されるとか、USBストレージとして認識できれば、 それぞれのAPIで使えますが。 あとおそらく、DDKは必要でしょう。 http://www.microsoft.com/japan/whdc/ddk/winddk.mspx USB関係のインクルードか何かがVC++本体には含まれていなかったと思います。 また、USB,WDM関係のAPIの資料もVC++にはついてなかったと思いますし。 あと、WDMデバイスドライバって本にUSBに関して記述がありました。
お礼
jun2004さん txrxさん terra5さん いろいろありがとうございました 一旦CLOSEさせていただきます
- txrx
- ベストアンサー率45% (83/184)
>市販されているHARDに対するソフト的なI/Oルーチンです >「USBで携帯を接続して、データを取得せよ!」 つまり、市販されているUSB→携帯電話ケーブルを利用して、I/O処理を行うわけですね? それなら、そのUSB→携帯電話ケーブルのメーカ(もしかしてnagareさんとこ?)がドライバを提供しているはずなので、そちらを調べないとなんともいえませんね。 メーカが試料を提供するかどうかが問題ですが・・。 この場合はドライバを書く必要はなさそうですね。 新たにハード込みで開発を行うのであれば、先程の回答どおり、USBチップに既にドライバが用意されているので、そちらを使えばかなり楽です。 # 同じものを2回開発しても余り意味ありませんし・・・ VC++の開発環境があれば、FTDI等のドライバは簡単にインタフェースできるそうです。
- txrx
- ベストアンサー率45% (83/184)
>>I/O処理ですよね? >そうです ドライバを書くと言う意味ですか? 自社製品のUSBドライバを記述するのですか? ↑つまり、ソフト的なI/Oルーチン? それともUSBでI/O制御を行うのですか? ↑つまり、H/L出力による外部機器制御など・・・。 もしも、1からドライバを記述するのであれば、私の誤解でした。すみません。 そうではなくて、USBを使って何かを行うのであれば、USBのチップが必要ですよね? 今は、そのUSBチップにチップメーカが既にドライバを書いているものがあります。 こういったチップを使えば、ドライバを改めて書く必要がありません。 それで、先程の参考URLは、そのチップを使って更にモジュール化を行い、ドキュメントも日本語化している製品だったのです。 I/O処理といわれていたので、仕事柄I/O制御と思ってしまって・・・。ごめんなさい。
- 参考URL:
- http://www.ftdichip.com/
補足
あ! 混乱の元がわかりました 市販されているHARDに対するソフト的なI/Oルーチンです 上からの命令は 「USBで携帯を接続して、データを取得せよ!」 です
- txrx
- ベストアンサー率45% (83/184)
> ターゲットにするHARDによって処理が違うということでしょか? えーと・・・。 参考URLをご覧になりましたか? そこの製品を買っちゃえば、比較的簡単にできると言う意味だったのですが・・・。分かり辛くてごめんなさい。 含まれているINFファイルなんかを有る程度変更すれば、自社製品の様に表示されたりできるそうです。 I/O処理ですよね? そのつもりで書いているんですが・・・。違ったかな? マウスとかHDDとか関係ないですよ。
補足
ふたたびです ありがとうございます >そこの製品を買っちゃえば、比較的簡単にできると言う意味だったのですが・・・。分かり辛くてごめんなさい。 たぶん買えません。。。 なかったらつらいのでしょか? >I/O処理ですよね? そうです HARD(マウスとかHDDとか)によって処理が違うと読んでしまいました HARDの種類には依存しないということでよいのですね
- txrx
- ベストアンサー率45% (83/184)
いまは、USB開発がかなり楽になってきています。 I/O処理程度であれば、VC++でできるようです。 ドライバの知識も余り必要としません。 ただし、モジュールは必要です。 メーカの提供するモジュールには、ある程度の試料とドライバ関係がセットされています。 こんなのを使えば、I/Oなんか楽勝です。
補足
ありがとうござまいます >ただし、モジュールは必要です。 >メーカの提供するモジュールには、ある程度の試料とドライバ関係がセットされています この文章が理解できないですが。。。 ターゲットにするHARDによって処理が違うということでしょか? ・マウス ・HDD ・LAN ・などなど また、同じHARDでもメーカで異なるのでしょうか?
お礼
ありがとうござまいます 購入してみます