none
ATLにイベントを追加した後に、変になってしまった。 RRS feed

  • 質問

  • 先月に以前WinXP上でVS2008で作ったATLプロジェクトをWin7 VS2010に移しました。 今日の午前中までは正常にメソッドの追加、コンパイル、デバッグなどができました。 今日の昼から、[ATL チュートリアル ――― イベントの追加] の説明を参考しながら、イベントを一つ追加し、コンパイルしました。しかし、今回のイベント追加は失敗した見たいです。追加したイベントはATLクラスのメンバー中になかった。    そのため、「インタフェイスの実装」をやってしまいました。  その後、コンパイルをすると、「イベント(イベントを呼び出す場所)は定義されていません」というエラーがでました。   _IXXXXEvents_CP.h ファイルを開いていたら、以前追加したイベントを含めて、すべてのイベントの定義が消えました。  そして、私はもう一度「接続ポイントの実装」をやったら直るかなあと思って、やってみると、接続ポイントの実装ウィザードの画面にある「ソースインターフェイス」リスト中に何もないです。 ということは接続ポイントの実装ができなくなったです。 

    でも、プロジェクトの「XXXX.idl」ファイルを見たら、インターフェイスの定義がちゃんとあるし、変なところがないです。 これはどういうことですか???どうやって直りますか???

    よろしくお願いいたします。

     

    _IXXXXEvents_CP.h ファイルの内容を元に直しました。とりあえず、以前のイベントを正常に使えるようになって、コンパイルもう正常にできました。 でも、接続ポイントの実装ウィザードの画面にある「ソースインターフェイス」リスト中にまた何もないです。 このままでいいかな?


    cyo
    2010年9月10日 8:14

回答

  • 参考にしたのは、以下のチュートリアルでしょうか。

    [ATL チュートリアル]

      http://msdn.microsoft.com/ja-jp/library/599w5e7x(v=VS.100).aspx

     

    Projectが以下Sampleにありますので、該当部分のSource Codeと比較してみてはいかがでしょうか。

    [POLYGON サンプル:ATL チュートリアル]

      http://msdn.microsoft.com/ja-jp/library/sxwkda4a(v=VS.100).aspx

     

    原因はわかりません。

    単なるSource Codeの書き方(体裁)の問題かもしれません。

    書き方によっては、Parse出来ない事もあります。

    Compileが正常にできているのなら、後は実際に期待通り動作するか確認してみましょう。

    リストは、手間を軽減するためのものですから、自分で処理を記述しても問題ありません。 

     

    また、sdfファイルを一度削除してみて、再度同じ状態になるか確認してみてください。

    • 回答の候補に設定 山本春海 2010年9月30日 8:34
    • 回答としてマーク 山本春海 2010年11月9日 1:50
    2010年9月17日 11:07