none
Any CPU から X86に変えましたが RRS feed

  • 質問

  • Windos 7  32bit、VS2008です。
    幾つかのC#のプロジェクトがあるソリューションがあります。
    これらのプロジェクトはMFCの32bitのDLLを利用しています。

    このプログラムをVistaの64bitで動くようにと、プロパティ/ビルドで
    プラットフォームターゲット をAny CPU から X86に変えました。
    一方、ビルド/構成マネージャのところにもプラットフォームがあり、
    そこではAny CPUのままです。

    64bitで動かすにはこのままで良いのでしょうか?
    プラットフォームターゲットとプラットフォームの違いは何でしょうか?

    2011年3月3日 6:50

回答

  • プラットフォームターゲットは実際に x86/x64/Any CPU などの内、どれをターゲットにビルドするか決定するものです。
    これに対して、ビルド構成などに出てくる x86 などは、どういった設定でビルドするかの設定を集めたものと言えます。
    (設定を集めたものに過ぎないので、x86-2 とか x64-2 とか自分で好きな名前で作れる)

    プロジェクトごとにあるプラットフォームターゲットを個別に変えるやり方のほかに、ビルド構成として x86 を追加するやり方もあります。
    こちらで追加すると、それぞれのプロジェクトにも x86 が出てきますので、ソリューション全体で x86/Any CPU の切り換えをするといったこともできます。
    このほか、条件付きコンパイルシンボルを追加したり、部分的に変更したりとか組み合わせることが、プロジェクト・ソリューションによってはあるかもしれません。こういったときはビルド構成(か、プラットフォーム)を追加して実現することもあります。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク クサキ 2011年3月4日 6:57
    2011年3月3日 14:06
    モデレータ

すべての返信

  • 構成マネージャは自分で作るパターンじゃないでしょうか?たとえば「デバッグ用」「テスト用」「リリース用」などのように。そのなかに「x86用」や「AnyCPU用」などがあるイメージです。

    64bitプロセスにはx86イメージをロードできないので、とりあえずはスタートアップとなるexeだけx86でビルドしていればx86プロセスとして起動するので64bitOSでも動くと思います。


    http://takumayokoo.blogspot.com
    2011年3月3日 7:58
  • プラットフォームターゲットは実際に x86/x64/Any CPU などの内、どれをターゲットにビルドするか決定するものです。
    これに対して、ビルド構成などに出てくる x86 などは、どういった設定でビルドするかの設定を集めたものと言えます。
    (設定を集めたものに過ぎないので、x86-2 とか x64-2 とか自分で好きな名前で作れる)

    プロジェクトごとにあるプラットフォームターゲットを個別に変えるやり方のほかに、ビルド構成として x86 を追加するやり方もあります。
    こちらで追加すると、それぞれのプロジェクトにも x86 が出てきますので、ソリューション全体で x86/Any CPU の切り換えをするといったこともできます。
    このほか、条件付きコンパイルシンボルを追加したり、部分的に変更したりとか組み合わせることが、プロジェクト・ソリューションによってはあるかもしれません。こういったときはビルド構成(か、プラットフォーム)を追加して実現することもあります。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク クサキ 2011年3月4日 6:57
    2011年3月3日 14:06
    モデレータ
  • 各プロジェクトのプラットフォームターゲットをX86に変えると、
    64bit CPUで動かすことは確認できました。
    ビルド構成の方はも少しハッキリしませんが、色々動かしてみます。
    (ソリュションの所で、一発で全てのプロジェクトの
    プラットフォームターゲットをX86に変えれると良いなと思いますが。)

     

     

    2011年3月4日 6:56