我們有一個已經存在了很長時間(也許早於Visual Studio 6)的DLL項目,它已經針對VS的每個新版本進行了更新。該項目包含使用ATL實現的多個COM類。如何在舊的ATL DLL項目中添加一個「ATL簡單對象」升級到VS 2010?
升級到VS 2010後,該項目仍然沒有問題。但是,如果我嘗試用鼠標右鍵單擊該項目並選擇添加 - >類... - >ATL簡單對象,我得到一個錯誤框,這樣說:
ATL類可以只能添加到MFC EXE和MFC常規DLL項目或具有完整ATL支持的項目。
這在VS 2008年工作
當我看到項目屬性,使用MFC均設爲使用標準Windows庫和使用ATL均設爲不使用ATL。我將它們更改爲分別在共享DLL中使用MFC和動態鏈接到ATL,但仍然得到相同的錯誤。
我知道如何在不使用嚮導的情況下添加新的ATL對象,並且我可以嘗試使用VS 2010重新創建該項目以使其更加開心。但是有沒有人知道有什麼簡單的方法讓VS能夠讓我使用一個項目,它不承認它是一個「完全支持ATL」項目的嚮導?
確實,添加該代碼使一切正常。謝謝! –
我後來想到編輯'功能IsATLProject(oProj){return true; }'更加可靠,但需要一個人去搜索那個嚮導腳本......第一個技巧就是使用項目源代碼。 –
FWIW,我能夠將所需的代碼削減到一行:「class CDummyModule:public CComModule {} DummyModule;」這也可以防止由於現有_Module定義而導致的任何錯誤。並且確保在構建項目之前將其刪除或註釋掉,以防止由於擁有多個CComModule派生對象而導致的問題。 –