パス名

漢字ファイル名、漢字ディレクトリ名に対応します。UNCにも対応してください。

マウス無しで操作可能か

最近のはそういうのは無いと思いますが、 一部のノートパソコンには、ポインティングデバイスが何もない場合があります。 キーボードだけで操作可能なようにすべきです。 メインウインドウにボタンやその他のコントロールを並べた時には、最低でも TABキーによる移動をサポートしてください。方法は などがあります。

あと、フォーカスが行方不明にならないようにしてください。 ボタン等のコントロールにフォーカスがあれば、スペースキー等でそれを操作 できますが、メインウインドウにフォーカスが移ってしまうと、操作できなく なります。

解像度を変更してみる

ディスプレイのドット数を変更すると、 ダイアログが画面からはみ出てボタンが押せなくなることがあります。 システムフォントのサイズも影響するので、色々な組み合わせで調べる必要があります。 Windows95/98なら640*480を最低線と考えておけば良いでしょうが、 Windows3.1も対象にするなら、640*400(PC-9801)や640*350(EGA)も考慮に入れるべきです。

最近の小型ノートでは、800*480とか1024*480とかいった変則的な解像度のものがあります。 このへんにも注意が必要です。

Win3.1+Win32sに対応させる。

32ビットアプリケーションを組む場合、可能なら、Windows3.1+Win32sにも対応させましょう。 その過程でバージョン依存部分を切りだすことができますし、 バージョン依存部分が分かれば、将来のWindowsへの対応もやさしくなると思います。 また、95/98だけでは見つからなかったバグが見つかることもあります。 実際のユーザー数を見ても、Windows3.1を使っている人は、全体の2割程度は、いるようです。 なお、ソースはWin32sに対応していても、最近のVC++で通常の状態でコンパイルすると、 バイナリとしてはWin32sでは動作不能な物かできるようです。 なんらかのオプションで変更可能かもしれませんが、残念ながら私は知りません。

プログラムマネージャに対応させる

Windows95でも、プログラムマネージャをシェルにすることができます。 通常はインストール時にシェルを選択しますが、system.iniのshell=の部分をshell=progman.exe に書き直すと、インストール後にも変更できます。 諸般の事情でWin32sへの対応を見送った場合でも、これぐらいは対応しておきましょう。 この場合、最小化(アイコン化)した時の挙動が変わりますので、その辺を中心に動作確認します。 私は、「アイコンの状態で実行」チェックボックスにチェックを入れていた場合(つまり、 起動時にアイコン化されていた場合)、メインウインドウをリサイズしても、 子ウインドウが追随しないというバグをいれてしまったことがあります。

16ビット版を、ソース共通で作成する

もし、16ビット版のコンパイラを持っているなら、ソース共通で16ビット版を作成するのも良いです。 16ビット版のアプリにも、まだまだ需要はあります。 私のBMP2MONOのダウンロード数を見ると、 だいたい全体の1割強は16ビット版をダウンロードしていきます。 また、対応の過程で見つけにくかったバグが見つかることがあります。 16ビット版の動作確認は、Windows3.1のスタンダードモード・エンハンストモード両方で確認します。 またWindows95や98でも確認すべきです。動作が異なることがあります。 (私は、Windows3.0でも確認します)

NTへの対応

これは私自身、やってないので大きなことは言えないのですが……。 テスト環境が入手できれば……。(NT自体を入手しても、HDの空きが無い……)

マシンアーキテクチャの違いへの対応

Windowsが動くマシンには、大きくわけて、PC-AT、FMR/FM-TOWNS、PC-9801/9821の 三通りのアーキテクチャがあります。 私の経験では、FM-TOWNSで浮動小数演算のエラー時の挙動が違っていたことがあります。 同一マシンでもビデオカードを交換したりしてみると、描画関係のAPIの挙動が違うこともあります。 ビデオカードの予備が無い場合でも、AT互換機の場合、 どんなビデオカードでも、最低でもVGAとSVGA(800*600)はサポートしてるはずですので、 ドライバを交換したりしてみましょう。Windows3.1英語版ではEGAも可能なはずです。

言語環境の変更

英語版Windowsや中国語版Windows等、日本語を表示できない環境でも動作するように しておくと良いでしょう。16ビットでも使えるやり方としては、
    hdc=GetDC(NULL);
    GetTextMetrics(hdc,&tm);
    if (tm.tmCharSet==SHIFTJIS_CHARSET) Japan=1; else Japan=0;
    ReleaseDC(NULL, hdc);
としてJapanというフラグ変数に値を設定し、 文字列の表示の際などにこれを参照して出力を切り換えるという手法があります。

開発環境の変更

もし複数のWindows対応コンパイラをお持ちなら、すべてのコンパイラでコンパイルしてみましょう。 C言語で記述したなら、C++モードでもコンパイルしましょう。

#define STRICT をつけた場合とつけない場合の両方でやってみましょう。

ヘルプファイル

Windows95以降のみを対象とする場合でも、ヘルプファイルをHTML形式で提供して 良いものかどうか、疑問があります。なぜなら、初期のWindows95には、Webブラウザ が付属していないからです。 Windows3.1に対応させる場合は、もちろん、HTML形式は使えません。

前のページ

一つ上のページに戻る