標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第632回]

●Windows7でHIDプログラムのコンパイルができました

[第629回]で「Windows7でHIDプログラムのコンパイルができません」と書きました。
なんと、大ウソでありました。
つつしんで訂正しお詫び申し上げます。

ことの顛末をご説明申し上げますと。

やっとのことで、ND80ZV組立キットに附属するCDROMも出来あがりました。
が。
cppフォルダの中身がどうも気になるのですよねえ。

ええ。
そこにはHIDプログラムのソースファイルが収めてあります。
HIDアプリケーションをコンパイルするときに必要なヘッダーファイルやライブラリファイルも同梱してあるのですけれど。

当初HIDプログラムをコンパイルしようとしたところ、わけのわからないエラーメッセージがやたら出て来てなかなかコンパイルできませんでした。
そりゃあもう、悪戦苦闘の連続で、やっとのことでコンパイルできるところまできたのでありますが。

悲しいことに、その悪戦苦闘の記録が全くありません。全く記録してなかったんですよねえ。メモすらありません。
あとは、記憶だけが頼り。
んなもの見事に、きれいさっぱり忘れ去っておるものでありますから、頼りになるわけがありません。

しかも、手持ちのパソコンは、Windows7を除いて、Windows98もWindows2000もWindowsXPもみーんな試しまくったものですから、どのパソコンでもちゃんとコンパイルできるのですけれど、それはひょっとすると、borland以下のフォルダになにか仕込んでしまっているのかもしれません。

ひょっとするとお客様のお手元のパソコンでは、コンパイルできないよお、ということになってしまうのではあるまいか。と、どうも気になって仕方がありません。
どこかまだクリーンなパソコンで試してみたいものだと思っておりました。

で。突然に思いつきました。
そういえば。
自宅にある、DELの中古パソコン、あれは確かWindows2000だったはず。
普段はほとんど息子専用になっておりますから、そこにはまだborlandC++はインストールしてなかったはず。
おお。それならば。

ちょうどよいではありませんか。
で。
そのDELのWindows2000パソコンに、BorlandC++をインストールいたしまして、作ったばかりのCDROMからcppフォルダをコピーいたしました。

それで。
さっそく、コンパイルしてみましたら。
なんと。
コンパイルできません。
「Windows.hが開けません」って、Windows7のときと全く同じエラーメッセージが表示されてしまいました。

そんな、ばかな…。
念の為に、中日電工の仕事場に戻って、Windows2000を立ち上げて、コンパイルしてみましたら、ちゃんとまともにコンパイルできてしまいます。
すると。
これは、cppフォルダの中身の問題ではありません。

やっぱり。
c:¥borlandフォルダの中身になにか手が加えられているに違いない。
って他人事のように書いておりますが、手を加えたのはもちろんこの私。
悲しいことにさっぱりかけらほどの記憶もありません。

こうなると、残る手段は、Windows7にインストールしたborlandフォルダと、そのほかのパソコンのborlandフォルダを比較してみるしかありません。
しかし。
言うのは簡単ですけれど、borlandフォルダには、ヘッダーファイルやライブラリファイルがそれこそ山のようにありますから、そんなもの、どうやって比較するのだあ。

困ったときのネットサーフィン、ということで、何か、らしいツールはないものか、と捜してみましたら。
ありました。
これはまた、なかなかどうして優れものでありました。

●ファイル比較ツールFdateCompare

フリーソフトです。
さっそくダウンロードさせていただき、有り難く使わせていただきました。
このソフトは2つのフォルダの中のファイルを比較して、相違しているものを見つけ出してくれます。
最初は¥borland¥bcc55¥includeフォルダを比較してみたのですが、相違しているものはありませんでした。
それでは、ということで今度は¥borland¥bcc55¥libフォルダを比較してみましたが、ここも完全に一致しておりました。
まさかねえ、と思いながら、次に¥borland¥bcc55¥binを比較してみましたら。
おお。まさかのゲットです。


Windows98パソコンのborland¥bcc55¥binをコピーしてWindows7のCドライブに貼りつけたものと、Windows7のCドライブにセットアップしたborland¥bcc55¥binとを比較してみましたら、bcc32.cfgとilink32.cfgが不足していることがわかりました。
2つのファイルのタイムスタンプは2010/01/16、おお、確かに、このころは、HIDプログラムをコンパイルしようとすると、わけのわからないエラーメッセージがいっぱい出て来て思いっきり悩んでいた時期でありました。

で。
この2つのファイルをWindows7のC:¥borland¥bcc32¥binにコピーいたしまして、あらためてコンパイルしてみましたら。
無事、コンパイルできました。

めでたし、めでたし、でありました。

で。
さきほどの2つのファイルでありますが、中身を見てみますと。
bcc32.cfgは、

-I"C:\borland\bcc55\include"
-L"C:\borland\bcc55\lib"

ilink.cfgは、

-L"C:\borland\bcc55\lib"

と書いてありました。
拡張子は.cfgですが中身はテキストですから、テキストエディタでこの2つのコンフィグファイルを作成して(中身も名前も半角で)、¥borland¥bcc55¥binフォルダに置けば、borlandC++で無事コンパイルができるようになります。
うむむ。
今年の1月に自分自身でそのように設定したはずなのですけれど…。
全く記憶にありません…。
トシはとりたくないものであります。

それはともかく。
この優れもののファイル比較ツールFdataCompareは、こちらの作者さまのページ(http://homepage2.nifty.com/nonnon/Download/FdateCompare/index.html)からダウンロードさせていただけます。
FdateCompareの作者様に感謝申し上げます。
有難うございました。


[2010.10.10追記]
[第629回]と今回の記事を合わせて読んでみますと、Windows7で「HIDプログラム」のコンパイルをしようとしたらできなかったのは、c:¥borland¥bcc55¥binにbcc32.cfgとilink.cfgが無かったからでした。というように読み取れます。
言外にHIDプログラム(多分Windowsアプリケーション)はコンパイルできないが、そうでないプログラムはコンパイルできる。と言っているように取れます。
事実、そのように思い込んでしまったのです。
これがまたとんでもない思い違いでありました。
なんと初歩も初歩、borlandC++を使う場合の「はじめの一歩」から踏み外してしまっておりました。

そのように昨日は、これはWindowsアプリケーションのためのおまじないだ、と思い込んでしまったのでありますが、一晩寝まして、今朝になりましてから、あらためて読んでいましたら。

うむむ。
それって、ちょっとおかしいのではないの?
だってふたつのcfgファイルの中身が余りに直接的で、どこにも「Windowsアプリケーションに限って」なる匂いがしないではありませぬか。

ということに気がつきました。
そう思ったら、なんでも確認をしてみるべきです。
うむ。推測するだけで済ませてはいけませぬ。
ちゃんとウラを取らねばなりませぬ。
で。さっそく確認をしてみました。

上の2つのコンパイルは正常に完了しています。
keytest.cppは簡単な、キーボードアクセスのプログラムで、keytest3.cppはWindowsAPIを使ったキーアクセスプログラムです。
次に、bcc32.cfgとilink.cfgの名前を変えてしまってから、もう一度keytest.cppをコンパイルしてみましたら、ご覧のように、なんとstdioもconioもオープンできません。
printfが未定義、つうことは”Hello World”すらできないわけで、こりゃあ完全に死んでおりまする。

ここに至ってやっと、ことの真相が白日のもとにさらされてしまったのであります。
なんと。お恥ずかしい!(だから。Cは嫌いだ)
ようするに、Windows7がどうの、とかWindowsAPIがどうの、とかの前に、そもそもBorlandC++をインストールしたら、使う前に、最初にbcc32.cfgとilink.cfgの設定をしておかなければならない、という初歩の初歩を完全に失念していただけ、というまあなんとも大恥さらしの一幕だったのでありました。

だってねえ。
日常的にborlandC++のインストールをしているわけではありませんものねえ。
それこそ何年かに一度インストールするかどうかってくらいでしょお。
んなもの、きれいさっぱり忘れてしまいますよお。
ええ。確実に保証付きで。

なんたって、トシなんですから。
これ、これ。こういうときにはなかなかに便利な言い訳ですなあ。
ん?最近、なんだか、電車に乗っても、床屋さんでも、みんなやたら親切にしてくれるんですよねえ。
2010.10.9upload
2010.10.10追記

前へ
次へ
ホームページトップへ戻る