質問: WindowsOSで使用するC++で作成したDLLを埋め込んだC#のラッパーDLLを作成したいと考えています。 できればひとつのDLLとしてまとめたいのですが、このようなことは可能ですか?
回答: PE32 DLL 要するに unmanage DLL (C++) と .NET Assembly DLL 要するに manage DLL (C#) と ではファイルフォーマットも違いますし1つにできると聞いた事ないです。できないと明示している資料は見つけていませんし悪魔の証明になっちゃいますが。 仮にできたとしても - manage つまり .NET Assembly のほうは AnyCPU で 32/64bit 共通にできるのに - unmanage のほうは PE32 (32bit) と PE32+ (64bit) で別ものですし 32bit/64bit 両方対応するためにはやはりファイルを2つ用意しないといけなくてあまりおいしくないんぢゃないかなと思います。 1つにまとめたい理由が配布、つまりファイル2つをコピーしたくないと言う理由であるなら、生ファイルを配布するのでなくインストーラにお任せするのが一番簡単ですし、そっち方向に舵を切ったほうが建設的でしょう。オイラならそうする。 ClickOnce でなんとかできるならそれもありかと・・・