プログラマーの独り言 - HSPリンクのエラーに思う
shot with SIGMA dp0 Qattro
20221021_DP0Q7918-21x9-sj9.jpg
Web|Instagram|Flickr|Twitter
HSPでWindowsアプリケーションを書いたのは,なんと今年で13年選手になるdynabook(core2Duoですwww).
その開発環境を一昨年に購入した第9世代i7のmouseに移植したつもりが,リンク時にエラーが出てしまう.これはちょっと面倒だなと思って,長いこと放っておいたのだが,意を決してトラブルシューティングに着手した.
dynabookはHSPのバージョンが3.5.それをmouseの3.6でやろうとしたんだが,もしかしたらそこか.それで3.5をインストールしてやってみるのだが,dynabookでは通っていたリンクでどうやってもしくじる.
エラーの内容を見ると,同じ関数を再定義しているもよう.dllもasファイルも同じものを使っているのにこれは変だ.
そこでじっくり調べてみると,dynabookではcommon/llmod3.hspの中のcharupperとcharlowerを無効にしていた.だから競合が避けられていたことが判明.管理者でないと編集できないファイルなので,修正をかけてもタイムスタンプが変わらないので気が付かなかったわけだ.
そこで再度教訓.
修正した箇所についてはしっかり説明を残して,あとから見てもわかるようにしなければならない.その場限りではなく,後世?のことも十分考慮することが重要.
とはいっても,それにはこれまでも気を使ってきたつもりだ.なんでコメントが欠落していたのか,今となってはよくわからない.無事にモジュールが完成して動いたので,気が緩んだのかもしれない.趣味の領域なのでなおさら.
それにしてもコンパイルエラーと違って,リンク時のエラーに対処するには,参照箇所が広範囲になる傾向がある.だから毎度ウンザリするよね.
Cだったらこんなことはまず起きないと思うのだが,Windowsアプリケーションになるとdllなんかがいっぱい付いてくるから,それからは逃れられない.もう首を突っ込むのもほどほどにしようと思う.
この記事が気に入ったらサポートをしてみませんか?