So-net無料ブログ作成
検索選択

USBプロジェクト - サンプル・ソフトへの長い道のり(後編のつもりだった) [USB]このエントリーを含むはてなブックマーク#

だんだんと手段が目的になりつつある。

WDKのインストール

前回は、WDKをダウンロードしたところで夜になったので、 今日はインストールからはじめます。 ダウンロードしたISOイメージから出来上がったCD-RWは、660MBほどの容量でした。 これをインストールしたところ、1.65GBの容量を占めるバケモノに変化してしまいました。 こいつも大喰らいだぁ。

サンプルプログラムに無かったファイルは、 "{install_directory}/inc/api"にヘッダ・ファイルが、 "{install_directory}/lib/wxp/i386"にライブラリ・ファイルがありました。 これを"hid-lib"ディレクトリに入れます。

Visual C++でコンパイル

それでは、気を取り直して新規に作り直したディレクトリのソリューションを開きます。 古いバージョンのソリューションだから、変換しますという表示が出て、変換されたようです。 いくつか警告が出ていましたが、

C++ コンパイラの準拠の変更によって、プロジェクトがビルドする前にコード変更が必要になる場合があります。

こんな感じの「日本語の活字で記述された宇宙語の警告」なので、さっぱりわかりません。 しまった、英語版を入れるべきだった。

実のところ、VisualC++に触るのは初めてです。 Windows系列のコンパイラは、Windows1.2の時に挫折して以来なので、 まったくの素人と言っても差し支えないかと思います。 よくわかんないので、とりあえず、"hid_dev.cpp"だけコンパイル。

include ファイルを開けません。'afxwin.h': No such file or directory

これは、MFCだかのライブラリが無いのが原因でしたね。 "stdafx.h"の中の"#include"をコメントアウトして再度挑戦。

fatal error C1083: include ファイルを開けません。'atlstr.h': No such file or directory

これは、"hid_dev.cpp"で"Cstring"クラスが使用されているのが原因なので、 使用するクラスを"std::string"に変更します。

static std::string msg;

今度は、"setupapi.h"ファイルで使われている"GUID"という型が宣言されていないという エラーが出てきました。 使用している箇所は、こんな風になっています。

#ifndef __LPGUID_DEFINED__
#define __LPGUID_DEFINED__
typedef GUID *LPGUID;
#endif

それにしても、このVisualC++についてきたヘッダファイルは醜いですね。 パッチの当てすぎです。 これなんか「定義されていなかったら定義しろ」なんて記述が あちらこちらのヘッダファイルに散在しているという事のあらわれでしょう。 美しくない。

MSDNを調べた結果、GUIDというのは、"windows.h"というヘッダ・ファイルに出てくるらしいことが わかりました。 そこで、"hid_dev.cpp”にヘッダ・ファイル呼び出しを追加しました。

error C2039: 'GetString' : 'std::basic_string<_Elem,_Traits,_Ax>' のメンバではありません。

"CString"の代わりに"std::string"を使うことにしたので、 "GetString()"は、"c_str()"に変更します。 これで、hid_dev.cpp"はコンパイルできるようになりました。

GUIを作り直す

ここから、"hid_dev.cpp"以外の部分を変更していきます。 ところが、VisualC++のバージョンの違いから、GUI部分の変更が膨大になりそうなので、 いまはこの結果だけを使って、GUIは、VisualC++に新たに作成させることにしました。


nice!(0)  コメント(0)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。