私たちは社内コードのC++ COMライブラリを持っています。現在、C#アプリケーションからライブラリを使用しています。正常に動作します。C++ COM DLLを標準のエクスポートされたメソッドに 'フラット化'するには? (C#で消費)
しかし、COMオブジェクトの登録と登録解除は面倒であり、管理者権限で登録を実行する必要があるため、Win7にアップグレードするユーザーにとっては問題になり始めています(Click-onceアプリケーションから直接行うことはできません)。
だから、COM経由でライブラリを使用する理由はありません(歴史的な理由からCOMとしてコード化されています)ので、単純なエクスポートとしてメソッドを公開するだけに変更したいと思います。
最初の試みは、COMクラスの横にあるメソッドを公開することでした。 DLLを調べるための適切なツールを使って上手く見えます。
ここで、VSでCOM参照を削除し、参照参照ダイアログで単に '参照'するだけでdllをインクルードすると、COMオブジェクトとして扱われ、dllは期待どおり出力に含まれません。
COMライブラリをシンプルなDLLとして使用するのは「違法ですか?この問題を解決する最良の方法は何ですか?
ありがとうございました!
アンダース、デンマーク
したがって、COMの使用をやめて、P/Invokeを使い始めたいですか? – crashmstr