none
ATLコード自動生成 RRS feed

  • 質問

  • VisualStudio2008にて、新規プロジェクトでATLシンプルオブジェクトを挿入しました。
    挿入した結果、ヘッダとCPPファイルが生成されたので、それを保存しました。

    その後、クラスビューにて、COMインターフェースにプロパティやメソッドを追加したのですが、クラスにプロパティやメソッドが追加されません。(IDLには追加されます)
    この状態でコンパイルすると当然、エラーになります。

    解消するには、手動でメソッドを追加する必要があり非常に面倒です。

    やり方が悪いのか(保存のタイミングとか、コンパイルのタイミング?)、時々このような事が起こります。
    VisualStudioは、何を契機としてコードの自動生成を実施しているのでしょう。

    「キャッシュファイル等を消去すればもう一度自動生成が実施される」といったテクニックがあればご教授頂けませんでしょうか。

    以上、宜しくお願いいたします。
    2009年9月20日 3:22

回答

  • 自己レスです。

    ATLコードの自動生成のコツを何となく掴んだので報告します。

    例えば、私のように自動生成に失敗してしまった場合、一度CoクラスからCOM_INTERFACE_ENTRYマクロで指定しているインターフェースの記述を削除します。
    仮に、インターフェースをITestとして、CoクラスをCTestとすると

    COM_INTERFACE_ENTRY(ITest) というマクロがTest.hにありますので、これを削除します。

    その後、クラスビューから該当するCoクラスを右クリックしてインターフェースの実装を選択して、削除したインターフェースを追加しなおします。
    このようにすることで、おそらくソースの自動生成が働くのではないかと思います。

    ご返信もあまりないようでしたので、以上を以って解決とし、本スレッドを閉じます。

    もし、私と同じような現象に見舞われた方は、上記手順を一度試してみると良いかもしれません。

    以上です。
    • 回答としてマーク さんど 2010年2月20日 15:31
    2010年2月20日 15:31