環境 Win2000 VC6.0 MFC
ActiveXコントロールに挑戦してみようと思い、
ActiveXコントロールAを作成し、別プロジェクトBに追加しました。
その後、ActiveXコントロールAにメソッドを追加したのですが、
プロジェクトBで、そのメソッドを使用することができません。
原因は、自動生成されるIDispatch ラップ クラスが更新されていないことだと思うのですが、
この自動生成されるファイルを再度作成させる方法がわからなく、困っています。
よろしくおねがいします。
以下の操作でラップクラスの情報を削除できると思います。
-自動生成された、.hファイルと.cppファイルを削除する。
-プロジェクトのFileViewから、上記ファイルを削除する。
-.clwファイルを削除する。
-クラスウィザードを起動して、.clwファイルをリビルドする。
あとは、ラップクラスを再生成してください。
ども
ご返答ありがとうございます。
教えていただいた方法ですが、その先の「ラップクラスを再生成」の方法がわかりません。
メニューであるのでしょうか?
一応、勘でやってみたのですが、
クラスウイザードからメンバ変数->クラスの追加->タイプライブラリからのインポートを選択
し、
tlbファイルを選択した場合、異なるクラス名のラップクラスのファイルが作成されます。
DDXの部分でも
DDX_Control(pDX, IDC_XXXX1, m_Bar1);
error C2664: 'DDX_Control' : 3 番目の引数を 'class _D***' から 'class CWnd &' に
変換できません。 (新しい機能 ; ヘルプを参照)
'const' に対してではない参照は 非 lvalue へバインドできません。
このようになります。
作成されたクラスはCOleDispatchDriverの派生クラスのようです
根本的になにか間違っているのでしょうか?
メニューの[プロジェクト]-[プロジェクトへ追加]
-[コンポーネントおよびコントロール]から挿入できます。
お返事ありがとうございます。
しかし、試してみましたがだめでした。
メニューの[プロジェクト]-[プロジェクトへ追加] -[コンポーネントおよびコントロール]から
挿入で
作成したコントロールのOCXファイルを選択することでよいのでしょうか?
この場合、コンポーネントギャラリで削除およびインポートして再登録をしてくれというメッセ
ージが出ます。
再登録の方法もわかりません。
そもそも「コンポーネントギャラリ」というのがどれだかわからないです・・・
helpを読んだつもりなのですが、「コンポーネントおよびコントロール ギャラリ」このことで
しょうか?
ここに登録するつもりで、ファイルをドロップしても共有違反でエラーがでます。
というか、プロジェクトに対していろいろなことをやりすぎたようで不安になってきました。
そもそもラップクラスを再度作成するためのことだけでここまで手間をかけることもバカらしく
なってきましたので、プロジェクトを再度作成することにしました
ご協力ありがとうございました。
今回の内容に関しては、時間に余裕ができた時に調べていこうと思います。