中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

大阪でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆とか、助言依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2011/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

Route64をもう一度確認しよう

.NET AnyCPU
32:32で動く
64:64で動く

.NET x86
32:32で動く
64:32で動く(WOW)

.NET x64
32:動かない
64:64で動く

.NET AnyCPUからActiveX(32bit)を参照設定で呼ぶ
32:32で動く
64:動かない

.NET AnyCPUからJ#ライブラリを使う
32:32で動く
64:動かない(32bitライブラリしかないから)

.NET AnyCPUからC++/CLI(32bit)を参照設定で呼ぶ
32:32で動く
64:動かない

.NET AnyCPUからC++/CLI(64bit)を参照設定で呼ぶ
32:動かない
64:64で動く

.NET x86CPUからC++/CLI(32bit)を参照設定で呼ぶ
32:32で動く
64:32で動く(WOW)

.NET x64CPUからC++/CLI(64bit)を参照設定で呼ぶ
32:動かない
64:64で動く

なので、C++/CLIの場合にはコンパイル環境をいじって、.NET側のアセンブリも32bit用64bit用2つの環境を出力する必要があります。

インストーラはもちろん、各CPU別に作成しなくてはいけないのでそのように作る。

ActiveXの場合には32bitと64bitでUUIDを変えなくてはいけないので、両方を提供した上でラッパもそれぞれのCPU別に用意されるのが望ましい。

さらにそれをラップするAnyCPUラッパを作って動的アセンブリロードすればたぶんCPU別に参照設定を切り替えなくてもいけると思う。

Windows Server 2008の次はx64版しか出ないことに注目。もう5年後のことです。

投稿日時 : 2007年5月20日 10:39

コメントを追加

# re: Route64をもう一度確認しよう 2007/05/20 10:52 中博俊

Route64なんて関係ないよと思っている諸兄。
少なくとも上記のもので64で動かないというプロジェクトはAnyCPUをやめてください。

# re: Route64をもう一度確認しよう 2007/05/20 14:37 NyaRuRu

C++/CLI でも Pure IL (Any CPU 対応) を出力できるので,C++/CLI を使っているか否かだけでは判断がつかないところと,J# のランタイムの 64 bit 版がでちゃったらしい点は要補足ですかね.
http://d.hatena.ne.jp/kkamegawa/20070518/p1

あと .NET の場合,初心者向きの記事でも P/Invoke を薦めるものがありますが,64 bit 環境でのチェックが甘いものをいくつかみたことがあります.
(IntPtr とすべきところを int にしている等)

# re: MDBはx86下で使える 2010/10/16 23:04 Ognacの雑感

re: MDBはx86下で使える

タイトル
名前
URL
コメント