DOBON.NET DOBON.NETプログラミング掲示板過去ログ

【C#,VB6】C#.NETで呼び出しもとのVB6のメソッドを使用したいのですが。

環境/言語:[Windows7]
分類:[.NET]


おはようございます。

VB6からC#の処理を呼び出し、
C#側で呼び出し元のVB6の処理(以下例ではTest)を使用したいのですが、
定義されていないというエラーになってしまいます。

C#側で呼び出し元のVB6の処理を呼び出すことは
できないのでしょうか?

======== C#のソース ============================================
public string ConvertUSDollarsToCDN(double used,ref Object obj_)
{
:
    <<中略>>
:
obj_.Test(bb);
}
================================================================

これをビルドすると、
'object' に 'Test' の定義が含まれておらず、
型 'object' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。
using ディレクティブまたはアセンブリ参照が不足しています。
というエラーになります。
■No28877に返信(オレンジジュースさんの記事)
> VB6からC#の処理を呼び出し、
> C#側で呼び出し元のVB6の処理(以下例ではTest)を使用したいのですが、
> 定義されていないというエラーになってしまいます。

それはそうです。
VB6 側からこういったメソッドがあるなどの情報を公開していないわけですから、できなくて当然です。

> C#側で呼び出し元のVB6の処理を呼び出すことは
> できないのでしょうか?

C# 側を COM として公開しているのであれば、イベントを VB6 側に見せて、VB6 のオブジェクトのメソッドをそのイベントで呼べるようにするとか。

DOBON.NET | プログラミング道 | プログラミング掲示板