2010/07/06

64bit プロセス上では 32bit dll は動かない

 
一般的に知られてませんが、Windows 64bit 上のプロセスでは
 
32bit の dll は動きません。
 
32bit 上のプロセスでのみ 32bit dll が動作します。
 
 
これはどーいう事かと言うと 32 bit 空間のアドレスと 64bit のアドレス空間では
互換性がないため、そもそも共存できないのです。
 
dll と言うのは、exe にロードされるプログラム(データだけの場合もあります)
なので、アドレス空間は同じである必要があります
 
これは plugin 形式を取っているプロセスが 64 bit の場合 32bit の dll は
一切動作しないことも 意味をします。
 
 
当然ながら Windows7 64bit でも、32bit プロセスで動作しているならば、
32bit の dll を動作させる事ができます
 
この事もあり「exe 自体が 64bit に移行する」というのには、まだまだ
時間がかかるでしょう。
 
これは Windows の仕様…というよりハードウェアの仕様になりますね。

0 件のコメント:

コメントを投稿