ペット プロジェクト用のデスクバンド COM オブジェクトを作成したいと考えています。私は COM の経験がなく、簡単に検索したところ、ATL が物事を簡素化することがわかりました。今日、COM コンポーネントを作成するためのより良い方法があるかどうか疑問に思っていました。ボイラー プレートが少ないという意味では、C++ の代わりに C# を使用すること、および考えられるその他のことをより適切に行うことができます。
4 に答える
クライアント マシンに .NET フレームワークのインストールをデプロイまたは依存することが問題にならない場合、C# は C++ よりもはるかに簡単です (ただし、インターフェイス、IID などを C# でP/を使用して再宣言する必要があります)。呼び出します)。依存関係を減らすことが問題である場合は、ATL を使用した C++ よりも優れています。
C#で作成し、COMコンポーネントとして公開するだけです。次のガイドを参照してください。
私がC++/ ATLを検討する唯一の理由は、C /C++ライブラリに接続していた場合です。私がC#よりもC ++を使用する強い理由を考えることができないことを除いて(あなたのスキルレベルが両方で同等であると仮定して)。
Microsoft の ATL ライブラリと組み合わせた C++ のみをお勧めします。
C++ で記述されたコード生成ツールを使用して、かなり多くのボイラープレート コードを取り除くことができました。このツールは、より C++ に適したインターフェイスを生成するコードを生成しました (Visual Studio でタイプ ライブラリを #import するときに tlh/tli ファイルで生成されるコードなど)。私のコード ジェネレーターは、COM サーバーに対してのみ同様のコードを生成します。
ご興味のある方は、DerTopper at web dot de までメールをお送りください。件名に「COM コード ジェネレーター」のようなものを入れて、私のスパム フィルターを通過しないようにしてください。
よろしく、 スチュアート