ラベル 64bit の投稿を表示しています。 すべての投稿を表示
ラベル 64bit の投稿を表示しています。 すべての投稿を表示

2010年5月1日土曜日

x64環境のOLEDBドライバ

長らくx64環境からMDBファイルにアクセスすることが出来なかった。
(正しくは、32bitアプリとしてWOW64上で動作する様に、ビルド構成としてx86を指定する必要があった。)

Office2010(x64)をインストールすることにより、64bitのアプリケーションでもMDBファイルにアクセスできるようになる。ConnectionStringで”Microsoft.ACE.OLEDB.12.0”するだけである。

データ接続コンポーネントも、今はベータがとれていないが、そのうちベータがとれるだろう。
(2010 Office system Beta ドライバ: データ接続コンポーネント)
http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=ja

これにより、32bitでは"Microsoft.JET.OLEDB.4.0"、64bitでは"Microsoft.ACE.OLEDB.12.0”と接続文字列を切り替えることにより、どちらの環境でも動作させることが可能になる。
※32bitでも下記ドライバをインストールすれば、"Microsoft.ACE.OLEDB.12.0”で接続が可能。
2007 Office system ドライバ: データ接続コンポーネント
http://www.microsoft.com/downloads/details.aspx?FamilyId=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=ja

なお、32bitで動作しているか64bitで動作しているかは、IntPtr.Sizeで判定が可能だそうだ。

(とあるコンサルタントのつぶやき:Part 2. .NET Framework 2.0 アプリケーションの 64 ビット対応)
http://blogs.msdn.com/nakama/archive/2008/11/06/part-2-net-framework-2-0-64.aspx

なお、アプリケーションの内部から、現在自分が 64 ビット/32 ビットどちらで動作しているのかを知る一番簡単な方法は、IntPtr.Size プロパティをチェックするというものです。

  • IntPtr.Size = 8 の場合は 64 ビットモードでプロセスが動作している。
  • IntPtr.Size = 4 の場合は 32 ビットモードでプロセスが動作している。

2009年9月2日水曜日

32bitのVisual Studioが64bitプロセスをデバッグできること

VisualStudio2008は32ビット版しか提供されていません。
でも、.NETFrameworkは64ビットネイティブで動作するプログラムを作成することができます。

ってことは、32ビット版アプリで64ビット版アプリのコンパイル&デバッグができるってこと?
とおもい、64bit環境でVisualStudioを起動してみました。(下図はタスクマネージャのキャプチャ)

image

やっぱり、VisualStudioは32bit、作成中のアプリは64bitで動作してますね。
自分はこの状態を非常に不思議に思うのですが、そんなことはないのでしょうか?
#64bitの方が扱えるメモリ空間も広いし、普通に考えたら32bitアプリからはすべてを制御できないような気がするんですよ。