none
使用ATL開發COM元件for smartphone RRS feed

  • 問題

  • 各位大大

    小弟使用下環境開發

    vs.net 2005

    選擇智慧型裝置專案形式,ATL(支援MFC)

    SDK:windows mobile 5.0 smartphone

    當我使用application wizard產生一個專案之後

    使用class wizard新增一個簡單ATL物件,並填入相關資訊,

    至此,尚未加入任何自己的CODE

    然後進行建置,此時就出現錯誤

    fatal error C1189: #error :  "Windows CE 平台上未正確支援單一執行緒 COM 物件...

    依據相關說明,加上#define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA後,又出現

    error C2065: 'CComSingleThreadModel' : undeclared identifier
    error C2955: 'ATL::CComObjectRootEx' : use of class template requires template argument list
    1>        C:\Program Files\Microsoft Visual Studio 8\VC\ce\atlmfc\include\atlcom.h(2422) : see declaration of 'ATL::CComObjectRootEx'.....等等錯誤

    請問是因為右啥SP我還沒裝嗎?

    為何我只使用wizard,自己的CODE都還沒加入就會有好多ERROR。

    請大家不吝賜教,謝謝。

    2007年2月13日 上午 10:19

解答

所有回覆

  • HI,

    建立ATL專案, 再加入ATL物件(您加入的是ATL Control, 還是ATL Simple Object), 這兩種預設都使用Apartment Threading, 您有改過設定嗎?

    tihs

    2007年2月23日 下午 12:18
  • 我加入的是ATL Simple Object

    不知道您所謂的改過"設定",這設定的意思是?

    謝謝您的回覆

    2007年3月8日 上午 03:06
  • HI,

    您在為專案加入ATL Simple Object的時候就可以看到設定畫面, 其中應該會有設定Threading Model的地方

    tihs

    2007年3月9日 上午 12:55
  • 我記得是使用預設設定,並無修改。

    不過還是請教您並確定一下

    Threading Model設定是應該勾選或不勾選呢?

    thx

    2007年3月9日 上午 02:40
  • HI,

    如果您是用中文版的話, 請勾選[無限制], 應該就可以建置成功

    tihs

    2007年3月10日 上午 07:39
  • 謝謝指導

    您說的是正確的

    只是奇怪,為啥不將無限制設未預設值呢?

     

    2007年3月12日 上午 08:04
  • HI,

    看VS2005 SP1是否有改正這個問題, 因為其他的設定既然COMPILE失敗, 應該就不要SHOW出來給程式設計師選

    tihs

    2007年3月13日 上午 12:58