1
我有一個ATL項目,其中有一個實現接口的類(使用VS中的「Implement Interface」快捷方式生成)。自動生成的stdafx.h中包含:Intellisense與編譯器不一致:「名稱空間不存在這個名稱」vs「不是類或結構名」
#import "C:\path\to\base.dll" raw_interfaces_only, raw_native_types, no_namespace, named_guids, auto_search
我班(CPLUGIN
)實現接口(IBase::IBaseClient
):
class ATL_NO_VTABLE CPLUGIN :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CPLUGIN, &CLSID_PLUGIN>,
public IDispatchImpl<IPLUGIN, &IID_IPLUGIN, &LIBID_MyLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public IBaseClient {
...
原樣,智能感知抱怨IBaseClient「不是一個類或結構名「,但它編譯得很好。
如果我添加using namespace IBase
或完全限定的基類名稱(IBase::IBaseClient
),然後將智能感知錯誤消失,但是編譯器說「IBase
:具有此名稱的命名空間不存在」,並無法編譯。
如何讓智能感知和編譯器都快樂?
使智能感覺開心不應該成爲高優先級。您最好的機會是更新或等待微軟的下一次更新來修復它(並希望它們不會破壞其他東西)。 – nwp
啊,所以這只是一個智能錯誤,我應該註銷? – ZachB
智能感知系統偶爾會將紅色小方塊置於完美的細碼下。您可以嘗試右鍵點擊解決方案,然後選擇「重新掃描解決方案」以強制智能感知在添加縮放之前思考更加困難,但是如果它們持續,只是忽略它們。 – nwp