Program Files以下のフォルダの挙動

新ソフトのインストールパッケージが完成し、アップロードできる状態になった。
インストーラーがProgram Files以下にインストールするようになっていたので、テストでそこにインストールしてみた。
OSはWindows 7(32bit)。Administrator権限でやった。
UAEが気になったのでテストでUAEを有効にしてやった。
インストールはエラーなく終了。
だが、設定ファイルをProgram Files以下に書けない。
自分で作ったプログラムではこんな症状は初めて。
今回からはじめて割りと新しい開発環境のC++ Builder XE2でやった。
古い開発環境のC++ Builder 6で作ったプログラムは、UAEを有効にしてもProgram Files以下にちゃんと書けるし読める。
ただし、UAEを有効にしていると実際には全然違う場所に書いていて、コマンドプロンプトで 書いたはずのディレクトリでdir と打っても書いたはずのファイルは見つからない。
でもちゃんとプログラムは動くからあまり気にはならない。

古いテキストエディタと新しい最近のテキストエディタで実験してみたが、症状は同じだった。
つまり、古いテキストエディタはUAE有効でもProgram Files以下に書けるし読めるが、本当は全然違う場所に書いていてdirで書いたはずの場所を見てもそのファイルはない。
新しい最近のテキストエディタはUAE有効だとProgram Files以下には書き込みエラーが出て書けない。

古い開発環境で作ったプログラムの挙動は大昔から知っていた。
知らなかったのは新しい開発環境では書き込みエラーが出て動かなくなってしまうということ。
うーーん、どうすればいいんだ。どこに書けばいいんだ。
まあいい、とりあえず、Program Files以下にはインストールするなと注意書きして配布しよう。
新しい開発環境では、Program Files以下に書き込もうとしたらいけないんだな。
しかし、新しい開発環境と古い開発環境の何が違うんだろうか。
Unicode対応のファイルAPIを呼んだのがいけなかったのだろうか。
謎だ。
さらによく分からないのは古い開発環境で作った自作のインストーラーは、Progra Fileの下に正しくインストールしている。
書き込みエラーも出ないし、全然違うフォルダに書かれているわけでもない。