私は64ビットで動作するアプリケーション用のアドインを作成していますが、32ビットライブラリのオブジェクトを使用する必要があります(このライブラリは32ビットのみで提供されます)。私はこれを達成できる方法はありますか?64ビットC#アプリケーションで32ビットライブラリを使用する方法はありますか?
3
A
答えて
8
これは.NETでは非常に簡単です。同じビット幅にするには、プロセス内のすべてのモジュールが必要です。
子プロセスの32bitプロセスを開始し、32bit DLLをすべてそこに置いて、.netのリモート機能を使ってプロシージャを呼び出します。または、COM-timesで言うように:アウトプロセスのコンポーネントサーバーを使用します。
32ビットと64ビットのモジュール間で大量のデータを渡す必要がある場合は、さらに複雑になります。メモリ共有を設定できますが、通常よりも多くの作業が必要です。
7
ここのルールは簡単ですが、聞きたいものではありません。 1つのプロセス内のすべてのコードは、ビット幅がのでなければなりません。ホスティングプロセスが64ビットの場合、そのプロセス内のすべてのコードも64ビットでなければなりません。したがって、32ビットコードを実行する必要がある場合は、32ビットコードを別のプロセスに入れて、何らかの形式のIPCを使用する必要があります。
関連する問題
- 1. 64ビットC++プログラムで32ビットライブラリを使用する
- 2. 32ビットアプリケーションの64ビットライブラリを使用する
- 3. 32ビットC++アプリケーションから64ビットJavaアプリケーションを起動する方法は?
- 4. プロセスが64ビットか32ビットかをチェックする方法はありますか?
- 5. iPhone 5sで32ビットライブラリを実行する64ビット
- 6. Visual Studio 2008のリンカーエラーC++:64ビットWindowsの32ビットライブラリ
- 7. 32ビット.NETアプリケーションと64ビット.NETアプリケーションに違いはありますか?
- 8. dlopenは64ビットライブラリの代わりに32ビットをロードできません
- 9. 32/64ビットQT C++プログラムでボリュームシャドウコピーサービスを使用する必要があります
- 10. ナンシー32ビットまたは64ビットはありますか?
- 11. コンピュータシステムがアプリケーションを識別する方法は、32ビットまたは64ビットです
- 12. 32ビットと64ビットのアプリケーションで別々のPATH変数を維持する方法はありますか?
- 13. ユニティビルドのアプリケーションが32ビットまたは64ビットであること
- 14. 32ビットDLLを使用する64ビットJavaアプリケーション
- 15. Javaアプリケーションから32ビットOSまたは64ビットOSを決定する方法
- 16. 64ビットOSで32ビットSTSを使用できますか?
- 17. 32ビットライブラリとの64ビットファイルリンクをコンパイルする方法
- 18. 64ビット.NETアプリケーションで32ビットのアンマネージCOMサーバーを使用
- 19. 「Any CPU」コンパイル済みアプリケーションを64ビットOSで32ビットモードで実行する方法はありますか?
- 20. AFNetworking - この64ビットライブラリを32ビットアーキテクチャで簡単に使用できますか?
- 21. 32/64ビットWindows/Linuxアプリケーション
- 22. iOS 32対64ビットのアプリケーション
- 23. 32ビットiOSアプリケーションを64ビットに移行
- 24. 32ビットと64ビットの両方のアプリケーションをサポートするSetWindowsHook
- 25. QT Creatorの.proファイルで64ビットと32ビットのマシンを検出する方法はありますか?
- 26. 64ビットCPUで一般的な操作に32ビット整数を使用する理由はありますか?
- 27. Windows 7での32ビットC++アプリケーションの開発64ビット
- 28. 64ビットPythonで32ビットdllまたはexeを使用できますか?
- 29. どうすれば64ビットで、c:¥program files(x86)を、32ビットではc:¥programファイルを使用できますか?
- 30. 64ビットLinuxの32ビットGTK +アプリケーションのコンパイル
私はあなたが32ビットプロセスで32ビットライブラリをホストし、プロセス間通信を使用して前後のデータをマーシャリングできると信じています。短い答え:それは容易ではありません。 – user7116
*本当に* 64ビットモードが必要ですか?まれです。単純な修正は、EXEプロジェクトのPlatformターゲットをx86に設定することです。 –
@Hans Rickのようなサウンドは、アドインを書いているため、ホストアプリケーションを制御できません –