Open棟梁Project - マイクロソフト系技術情報 Wiki
WOW64についての情報を纏めている。
Program Files のフォルダの場合は少々勝手が違ってきます。
WOW64で動作しているアプリでSHGetFolderPath()APIを使用し、 CSIDL_PROGRAM_FILES_COMMONを指定しています。 すると、Program Files\Common Filesではなく、 Program Files (x86)\Common Filesが取得されます。
開発したCOMを登録するRegsvr32にも32版64版があります。
- 64 ビット版は %systemroot%\System32\regsvr32.exe です。 - 32 ビット版は %systemroot%\SysWoW64\regsvr32.exe です。 参照URL: http://support.microsoft.com/kb/249873/ja cf. Windows7 64bit にdllを登録する方法~ 【ダッシュ】熊本のSEO対策・ホームページ制作会社です http://www.dashinc.co.jp/archives/1662
COMの設定を行うdcomcnfg.exeにも32bit版があるもよう。
dcomcnfg.exe /32
32ビット版のCScriptコマンドを使ってVBScriptのプログラムを実行するには、 CScriptコマンドを「C:\Windows\SysWOW64\CScript.exe」と記述します。 cf. 6.64ビット環境でVBScriptを実行する方法 - CWindowsSysWOW64CScript - VBScript & JScript基礎 http://www.happy2-island.com/vbs/cafe01/capter00600.shtml
コチラを参照。
ここでは、32bit用、64bit用データプロバイダに起因する問題をまとめています。
ADO.NETデータプロバイダ一般的なトピックはコチラを参照下さい。
Windows 7(64bit) / Office 2010(32bit) 環境での検証結果
※1:C:\Windows\System32\odbcad32.exe
※2:C:\Windows\SysWOW64\odbcad32.exe
なお、OLEDBについては、2008R2 64bit上で32bit、64bitの両方の
Jet OLE DB プロバイダが存在し、それぞれ動作したことを確認しています。
問題は、OLEDBが64ビットに対応していない件ですが、以下の代替のドライバがあり、
これをインストールしてConnectString?を変更することにより、プログラム変更なく動作しました。
実際は、WOW64環境もサポートされていないようです(Windows Server 2008 R2以降への以降はNG)。
こちらにも同様に32bit設定と64bit設定があるようです。
ホストするアプリが32bitの場合、対象アプリが64bitでも、
32bitのコード アクセス セキュリティ ポリシー設定を参照するようです。
IE9(32bit) → Excel2010(64bit) → DLL(64bit) といった動作をする場合、 実行するプロセスは 64bit だが、CAS 設定は IE9 から、32bit のものを参照している。