私はC++でDLLを使用するため、user32 APIのいくつかのアンマネージ機能にアクセスします(PInvokeは使用できません)それ)。私はx86アーキテクチャ用のアプリケーションとDLLの両方をコンパイルし、Windows 7 32ビットではすべて正常に動作します。問題は、Windows 7の64ビットでは、DLLに依存する機能を使用しようとするとアプリケーションがクラッシュすることです(ただし、すべての機能は正常に動作します)。32ビットシステム用にコンパイルされたC#プログラムとC++ DLLが64ビットシステムでクラッシュする
これは32/64ビットの問題だと思うので、x64アーキテクチャーのDLLを再コンパイルしようとしましたが、今は実行時にx86とx64の間でロードするDLLを選択できます。しかし、DLLに依存する機能を使用しようとするとクラッシュします(これは64ビットDLLを32ビットプログラムにロードしようとすると意味があります)。私はまだx64用のアプリケーションとDLLの両方をコンパイルしようとはしていません。私はそれが動作すると思うが、それは私に2つの異なるインストーラが必要となり、私はそこに行きたくない。どんな手掛かり?
両方ともx86用にコンパイルされている場合、動作するはずです。 64ビットシステムでそれをデバッグして詳細を教えてください。 – Henrik
私がテストに使用した64ビットシステムは、友人のコンピュータでした。それをデバッグするには、Windows 7の64ビットをvmwareまたはvboxにインストールする必要がありますが、セットアップはしばらく時間がかかります。 – Manu
64ビットシステムに32ビットのCRT DLLがありますか? –