- - PR -
VC# で COM を作成
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-12-28 11:03
VS.NET2003 を使用して VC# で COM を作成しています。
この COM を VC++6.0 のプログラムから使用しているのですが、COM を修正してビルドしなおした場合に、新しいタイプライブラリ使用してをVC++側のプログラムをリビルドしなおさないと、CreateInstance() でインスタンスが生成できなくなります。 VC# で COM を作成する場合、またはそれを VC++ から使用する場合に、何かやらなければならないことがあるのでしょうか? よろしくお願いします。 | ||||||||
|
投稿日時: 2004-12-28 11:20
修正の度合いにもよるというのはご存知ですよね?
Visual Studio .NET で、C# クラスライブラリプロジェクトの「COM の相互運用機能に登録する」を true にしただけであれば、LIBID, CLSID はシステム登録時に自動生成されます。 これらを固定すれば、改善されるかもしれません。 LIBID は AssemblyInfo.cs 中に Guid 属性を、CLSID は、CoClass として公開する C# クラスに Guid 属性を追加することで明示的に指定できます。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2004-12-28 11:26
こんにちわ
う〜んと 昔COM+で使ったきりなんで勘違いしてたらごめんなんだけど インターフェースが変わったとか.. それとも、インターフェースを定義していないとかとか.. が原因な気がする... きちんと、interfaceやGuidとか指定して作れば できるかな..(かなり自信ないですが^^ | ||||||||
|
投稿日時: 2004-12-28 13:09
渋木宏明(ひどり)さん、Yuuさん、アドバイスありがとうございました。
教えていただいた通り、LIBID、CLSIDを固定することで問題なく動作するようになりました。 また一つ勉強させていただきました。 ありがとうございました。m(__)m |
1