none
UI Thread相關語法 RRS feed

  • 問題

  • //MyMainthread.h
    class MyMainthread : public CWinThread
    {
      DECLARE_DYNCREATE(MyMainthread)
    public:
      MyMainthread();           
      virtual ~MyMainthread();
      virtual int Run();
      virtual bool Proc(int para) = 0;
    protected:    
        DECLARE_MESSAGE_MAP()

    //MyMainthread.cpp
      IMPLEMENT_DYNCREATE(MyMainthread, CWinThread)

    //SubThread.h
    class SubThread: public MyMainthread
    {
      ...
      virtual bool Proc(int para){...}
    }

    我希望在MyMainthread內的Proc()保持抽象,由繼承MyMainthread的類別去實作

    但是Compile一直不過,請問有哪個地方要注意嗎?


    • 已編輯 tycyen 2015年11月24日 上午 03:29
    2015年11月24日 上午 03:28

解答

  • 後來測試的結果,在MyMainthread的DECLARE_DYNCREATE及IMPLEMENT_DYNCREATE要拿掉

    但在其繼承的SubThread要補上DECLARE_DYNCREATEIMPLEMENT_DYNCREATE

    看起來應該是Interface Class(MyMainthread)不能補上以上兩個巨集

    而Implement Class(SubThread)才需要補上

    提供給其它人參考

    • 已標示為解答 tycyen 2015年11月25日 上午 12:25
    2015年11月25日 上午 12:25

所有回覆

  • 錯誤訊息是什麼?
    2015年11月24日 上午 03:31
  • error C2259:無法產生抽象類別

    Proc為抽象

    我在猜巨集的使用上可能要修改,但又不知道怎麼改...
    • 已編輯 tycyen 2015年11月24日 上午 05:21
    2015年11月24日 上午 05:18
  • 註解掉MyMainthread的這兩行程式碼看看是否可以解決:

    DECLARE_DYNCREATE(MyMainthread)

    IMPLEMENT_DYNCREATE(MyMainthread, CWinThread)

    2015年11月24日 上午 07:33
  • 後來測試的結果,在MyMainthread的DECLARE_DYNCREATE及IMPLEMENT_DYNCREATE要拿掉

    但在其繼承的SubThread要補上DECLARE_DYNCREATEIMPLEMENT_DYNCREATE

    看起來應該是Interface Class(MyMainthread)不能補上以上兩個巨集

    而Implement Class(SubThread)才需要補上

    提供給其它人參考

    • 已標示為解答 tycyen 2015年11月25日 上午 12:25
    2015年11月25日 上午 12:25