

お世話になります。
C#2005で開発しております。
WinXPで作成したexeで、C:\Windows\System32の下のiniファイルを読み込んでおります。
このexeを64bit版Win2008Serverで実行したいのですが、
C:\Windows\SysWOW64にインストーラーで作成されたiniファイルを以下のコードで読み込むことが出来ません。
string strIniFilePath = Environment.SystemDirectory + "\\****.INI";
64bit版で32ビットのものを実行する場合は、C:\Windows\SysWOW64に読み込みをしなければならないと認識しております。
また、64bit版Win2008Serverのsystem32フォルダに置くと、読み込むことが出来ます。
iniファイルはdllと違い、system32の下に置かなければいけないのでしょうか。
お手数ですが、ご教授いただきたくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
「そこで64ビットWindows(WOW64)は,32ビット・アプリケーションが,例えばC:\WINDOWS\system32にアクセスすると,C:\WINDOWS\SysWOW64にリダイレクトする(図14[拡大表示])。」
と言うのが重要。
つまり
・32ビットアプリケーションは、インストーラーにより、C:\Windows\SysWOW64にインストールしなければならない
・32ビットアプリケーションをC:\Windows\System32にインストールしてはならない(iniファイルも然り。C:\Windows\System32に32ビット用iniファイルを置いてはならない)
・32ビットアプリケーションは、C:\Windows\SysWOW64にアクセスする場合は、C:\Windows\System32にアクセスし、WOW64によってリダイレクトして貰わねばならない
・32ビットアプリケーションは、C:\Windows\SysWOW64にアクセスするようなハードコーディングをしてはならない
って事です。
なお、
string strIniFilePath = System.Environment.GetFolderPath(Environment.SpecialFolder.System) + "\\****.INI";
の方が安全です。
この回答への補足
ご回答ありがとうございます。
私も上記のページを確認し、記述していただいたコードも試したのですが、C:\Windows\SysWOW64のiniファイルを読み込むことが出来ませんでした。
リダイレクトをしているかどうか確認できるコードはあるのでしょうか。
No.2
- 回答日時:
C# 2005の初期設定では
プラットフォームターゲットがAny CPUになっているので、
x86環境ではx86アプリケーションとして
x64環境ではx64アプリケーションとして動作します。
なので、あなたが32ビットだと思っているプリケーションは
実際にはx64アプリケーションとして動作しているのでしょう。
x86/x64のどちらで動作しているかは
タスクマネージャのプロセスタブでイメージ名に *32 がついているかどうかを
確認することで分かります。
10 行でズバリ !! 64 ビット対応 .NET アプリケーションの開発 (C#)
http://msdn.microsoft.com/ja-jp/events/dd279507. …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
アプレットの利点について。
-
unzip32.dllの利用について(64b...
-
C#のメモリマップドファイルに...
-
C++からC#へ
-
JSPファイルで生じるエラーをど...
-
ちょっと特異ですが
-
正規表現について質問です。 カ...
-
Eclipseソース開発画面の行番号...
-
使用しているJUnitのバージョン...
-
エクセルVBAについて
-
CrystalReportsのバージョン確...
-
Visual Basic 2005 をインスト...
-
MSCOMCTL.OCXのアップデートの方法
-
エクリプスのプログラミングに...
-
AndroidとJavaの違いについて
-
javaからデータベースに接続 エ...
-
プログラムの起動、利用につい...
-
servlet 値渡し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
unzip32.dllの利用について(64b...
-
プラグインとパッチの違いは?
-
JAVAプログラムをWEB表示させる...
-
C#のメモリマップドファイルに...
-
java起動時の日本語引数文字化...
-
SurfaceViewの一時停止や再開方法
-
JAVAアプレットとか。
-
AccessとVBの違いについて
-
JAVAのオススメ本
-
予約システムの開発ツール
-
プログラミングの『C♯』で作れ...
-
帳票出力について
-
java oneって?
-
アプレットからアプリケーショ...
-
JVM(JRE)の再配布?について。
-
Javaセキュリティによってブロ...
-
javaでアプリケーションを作りたい
-
RTT計測
おすすめ情報