none
Internet Explorer11 32bitでActiveXdll64bitは動作するのか? RRS feed

  • 質問

  • お世話になっております。

    今回InternetExplorerを64bitで使う場合にActiveXDllを64bitで作成したら読み込み、動作するのか検証をすることになりました。

    最終的な目的はInternetExplorerの32bitでActiveXDllの64bitが動かないという実動作裏付けをとることが目的です。そのためにもInternetExplorer64bitでActiveXdll64bitが動く環境がまず必要だとなりました。

    ただ、公式見解として動かないという情報があれば検証せずに済むのですが、見解を見つけることができませんでした。

    現在のWindows10 64bitでInternetExplorer(32bit)を使用して64bitのActiveXdllを読み込み、使用できないことが書かれた文書などありましたらご教授いただければと思います。

    2019年7月26日 0:45

回答

  • 64 ビット OS 上であっても、32 ビット アプリには 32 ビット プロセス空間が割り当てられるので、32 ビット プロセス内に 64 ビット モジュール (dll, ocx, etc.) がロードされることはありません。
    (32 ビット プロセス内には 32 ビット モジュールしかロードできないし、64 ビット プロセス内には 64 ビット モジュールしかロードできない。
    だから、64 ビット OS 環境で 32 ビット アプリを動作させる場合は、WOW64 emulator が必要になる。)

    下記サイトに、間接的な説明があります。
    -------------------------------------------
    WOW64 Implementation Details
    https://msdn.microsoft.com/en-us/windows/aa384274(v=vs.110)
    -------------------------------------------

    。。。というか、32 ビット版と 64 ビット版の IE にデバッガをアタッチさせ、各プロセス内にロードされているモジュールを確認すれば、一目瞭然だと思います。
    • 回答の候補に設定 jihari_P 2019年7月26日 5:09
    • 回答としてマーク ta_k 2019年7月27日 0:49
    2019年7月26日 3:59

すべての返信

  • マルチポストですか?
    https://teratail.com/questions/202660

    違ったら失礼しました。でもマルチポストでしたら、ここでは遠慮いただくようにと管理者の方からお願いが出ています。

    フォーラムのご利用方法、ヘルプ、回答のガイドラインに関するお知らせ
    https://social.msdn.microsoft.com/Forums/ja-JP/93915a1e-22bc-4a23-83b1-f1ff47dccc82?forum=suggestja

    2019年7月26日 3:10
  • 64 ビット OS 上であっても、32 ビット アプリには 32 ビット プロセス空間が割り当てられるので、32 ビット プロセス内に 64 ビット モジュール (dll, ocx, etc.) がロードされることはありません。
    (32 ビット プロセス内には 32 ビット モジュールしかロードできないし、64 ビット プロセス内には 64 ビット モジュールしかロードできない。
    だから、64 ビット OS 環境で 32 ビット アプリを動作させる場合は、WOW64 emulator が必要になる。)

    下記サイトに、間接的な説明があります。
    -------------------------------------------
    WOW64 Implementation Details
    https://msdn.microsoft.com/en-us/windows/aa384274(v=vs.110)
    -------------------------------------------

    。。。というか、32 ビット版と 64 ビット版の IE にデバッガをアタッチさせ、各プロセス内にロードされているモジュールを確認すれば、一目瞭然だと思います。
    • 回答の候補に設定 jihari_P 2019年7月26日 5:09
    • 回答としてマーク ta_k 2019年7月27日 0:49
    2019年7月26日 3:59
  • ご指摘ありがとうございます。気づかず投稿していました。以後気を付けます。ありがとうございました。
    2019年7月26日 5:06
  • ご教示ありがとうございます。

    サイトURL拝見させていただきます。

    またIEにデバッガをアタッチさせる方法を思いつきませんでした。併せてご教授ありがとうございます。

    2019年7月26日 5:08
  • > 現在のWindows10 64bitでInternetExplorer(32bit)を使用して64bitのActiveXdllを読み込み、使用できないことが書かれた文書などありましたらご教授いただければと思います。

    質問者さんの特殊事情とかがあると分かりませんが、一般的な話で言えば、以下の記事の[Step 4. DLL ファイルのロードメカニズム]のセクションに書いてあるとおり、"64 ビットプロセスの中に 32 ビット DLL ファイルをロードしたり、32 ビットプロセスの中に 64 ビット DLL ファイルをロードしたりすることはできません" ということだそうです。

    Part 1. 64 ビット Windows OS の基本知識
    https://blogs.msdn.microsoft.com/nakama/2008/10/30/part-1-64-windows-os/

    なので、マルチポスト先の Teratail の質問にあった、

    > 公式の見解や仕様が見当たらないため動作裏付けをしたい -> 裏付けがあればそもそもやる必要がない

    のとおり、そもそもやる必要はないと思います。

    ところで、ID を ta_k と jihari_P の 2 つお持ちなのですか? それはむしろマルチポストよりマナー違反の度が大きいと思いますけど・・・



    • 編集済み SurferOnWww 2019年7月26日 9:39 訂正
    2019年7月26日 9:33
  • ご回答、ご指摘ありがとうございます。

    リンクのご教示ありがとうございました。

    IDはプライベートと仕事用です。回答にマークできなかった理由がわかりました。

    どうやら複数IDはよろしくないとのご指摘なので今後はここを利用しないようにします。ご迷惑をおかけしました。

    2019年7月27日 0:53
  • > どうやら複数IDはよろしくないとのご指摘なので今後はここを利用しないようにします。

    「複数IDはよろしくない」のは、ここに限った話ではなく、常識的に NG だと思います。なりすましとかの意図はなかったとしても、それを疑われますし。

    2019年7月27日 1:09