C#とWinFormsを使用してアプリケーションを作成しています。私は第三者によって提供されるActiveXコントロールを持っています。 ActiveXコントロールをフォームにドラッグし、コントロールが実装するクラスのインスタンスを取得します(「ウィジェット」と呼びます)。ヘッダーファイルなしでCOMインターフェイスポインタを宣言する
今や、インターフェイスポインタIWidgetをC#から従来のC++コードに渡す必要があります。私はdllにC++コードを入れ、P/Invokeを使ってC#から呼び出す予定です。問題は、C++コードにIWidget定義を与える方法がわからないことです。 C++コードの原作者はヘッダーファイル(widget.h)を持っていたので、widget.hを#includeしてIWidgetポインターを宣言することができました。
私は.hを持っていません(取得できません)。私はActiveXを持っているだけです。だから私はどのように私のDLLにIWidgetのポインタを宣言できますか?
これまでのところ、私の唯一のアイデアは、ActiveX DLLからIDLファイルを作成することです。それは合理的なアプローチですか?
おかげで、 マーク
ため
参照くださいHOWTO。 http://msdn.microsoft.com/en-us/library/8etzzkb6%28v=VS.90%29.aspx –
IDLにはIWidgetの定義がありますか?それを投稿すると、C#を取得できるはずです。 –
#importは有望です。私はカップルの日にチャンスを得るときにそれを試みます。回答いただきありがとうございます。 –