C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: ComVIsible(False)内のSharedイベント


(過去ログ 41 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■21504 / inTopicNo.1)  ComVIsible(False)内のSharedイベント
  
□投稿者/ まどか (551回)-(2008/07/03(Thu) 14:10:45)

分類:[.NET 全般] 

VB既存DLLをComへ公開しています。

<ComVisible(False)> _
Public NotInheritable Class MySharedClass

    Public Shared Event Test()


これを含むプロジェクトをビルドしてできたTLBをVB6で見てみると「TestEventHandler」が一覧にあります。
これは仕様でしょうか?
TLBを直接触る以外に出なくする手段はあるのでしょうか?

#これがぽつんとあってもとりあえず問題は無いのですけど。

引用返信 編集キー/
■21505 / inTopicNo.2)  Re[1]: ComVIsible(False)内のSharedイベント
□投稿者/ シャノン (522回)-(2008/07/03(Thu) 14:19:41)
2008/07/03(Thu) 14:20:03 編集(投稿者)

No21504 (まどか さん) に返信
> VB既存DLLをComへ公開しています。
>
> <ComVisible(False)> _
> Public NotInheritable Class MySharedClass
>
> Public Shared Event Test()
>
>
> これを含むプロジェクトをビルドしてできたTLBをVB6で見てみると「TestEventHandler」が一覧にあります。
> これは仕様でしょうか?
> TLBを直接触る以外に出なくする手段はあるのでしょうか?

暗黙のうちに Test イベントのデリゲート型が作られているのでしょうか。
デリゲート型を明示的に宣言して ComVisible(False) をつけるか、System.EventHandler を使ってみてはどうでしょう。
# VB.NET でどう書くのかはわかりませんが。
引用返信 編集キー/
■21506 / inTopicNo.3)  Re[2]: ComVIsible(False)内のSharedイベント
□投稿者/ まどか (552回)-(2008/07/03(Thu) 14:38:07)
No21505 (シャノン さん) に返信
> デリゲート型を明示的に宣言して ComVisible(False) をつけるか、System.EventHandler を使ってみてはどうでしょう。

#Shared Delegateは組み合わせ不可なので

Public Shared Event Test As EventHandler
で出なくなりました。

ただ、Sharedだけど引数にsenderを含む形になりますので
これについてはNothingを渡しますが、ガイドライン的なものは調べてみます。

ありがとうございました。

引用返信 編集キー/
■21507 / inTopicNo.4)  Re[3]: ComVIsible(False)内のSharedイベント
□投稿者/ まどか (553回)-(2008/07/03(Thu) 14:38:32)
付け忘れ。
解決済み
引用返信 編集キー/
■21510 / inTopicNo.5)  Re[3]: ComVIsible(False)内のSharedイベント
□投稿者/ シャノン (523回)-(2008/07/03(Thu) 15:44:15)
No21506 (まどか さん) に返信
> ■No21505 (シャノン さん) に返信
>>デリゲート型を明示的に宣言して ComVisible(False) をつけるか、System.EventHandler を使ってみてはどうでしょう。
>
> #Shared Delegateは組み合わせ不可なので

普通に Delegate 宣言じゃダメですか?
引用返信 編集キー/
■21521 / inTopicNo.6)  Re[4]: ComVIsible(False)内のSharedイベント
□投稿者/ まどか (554回)-(2008/07/03(Thu) 17:39:49)
No21510 (シャノン さん) に返信
> 普通に Delegate 宣言じゃダメですか?

できました。
Shared Event だから Shared Delegateにしなくちゃという頭しかありませんでした。。。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -