簡體   English   中英

錯誤:C2039“CString”:不是“ATL”的成員 [暫停]

[英]Error : C2039 'CString': is not a member of 'ATL' [on hold]

我正在嘗試將較舊的 VS2008 項目升級到 Vs2015+。 在安裝 VsIDE 時,我確保安裝新舊 Atl 和 MFC 依賴項,但無濟於事。

我不斷收到錯誤'CString': is not a member of 'ATL' inside files - atlmisc.h、atlctrls.h、atluser.h、atldlgs.h。

這些錯誤圍繞 ATL,感覺就像 ATL 在編譯期間沒有得到它需要的東西。 但是我不能把我的手指放在如何解決這個問題上。

atlapp.h包含之前在 stdafx.h 中定義#define _CSTRING_NS應該可以解決問題。

Cstring的文件錯誤位置在atlmisc.h,atlctrls.h,atluser.h,atldlgs.h文件中。 就我而言,問題是在 WTL、ATL、MFC 中混合使用 Cstring。

WTL 在 ATL 中使用 Cstring,但打開“atlstr.h”源文件。 定義為“_AFX”,表示如果定義了MFC的Cstring,會阻塞ATL,使用MFC。 但是,一些 WTL 引用 header 文件使用 ATL 的 Cstring,所以會出現“CString: not a member of ATL”錯誤。

將以下代碼添加到“atluser.h”文件中

#undef __ATLSTR_H__
#define _ATL_TMP_NO_CSTRING

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM