Visual Studio <atlimplementationdetails> IntelliSense错误

时间:2015-05-19 13:45:00

标签: c++ opencv visual-studio-2013

我尝试将可能使用VS 2010或2008创建的VS sln文件导入 VS 2013旗舰版。这很顺利,我可以重建项目。

然后我添加了opencv库并且它不会编译,在atlbase.h文件中获得以下错误:

namespace __identifier("<AtlImplementationDetails>")

导致&#34;智能感知:期待C ++关键字&#34;多次和

inline LSTATUS CRegKey::EnumKey(
_In_ DWORD iIndex,
_Out_writes_to_(*pnNameLength, *pnNameLength) _Post_z_ LPTSTR pszName,
_Inout_ LPDWORD pnNameLength,
_Out_opt_ FILETIME**  pftLastWriteTime) throw()
{
  FILETIME* ftLastWriteTime;

  ATLASSUME(m_hKey != NULL);
  if (pftLastWriteTime == NULL)
  {
      pftLastWriteTime = &ftLastWriteTime;
  }

return ::RegEnumKeyEx(m_hKey, iIndex, pszName, pnNameLength, NULL, NULL,    NULL, pftLastWriteTime);
}

原因&#34;智能感知:FILETIME是暧昧的&#34;多次。为了解决这个问题,我将其更改为

System::Runtime::InteropServices::ComTypes::FILETIME* ftLastWriteTime;

但是这导致了以下错误:

7   IntelliSense: The Deklaration is not compatible with ""LSTATUS ATL::CRegKey::EnumKey(DWORD iIndex, LPTSTR pszName, LPDWORD pnNameLength, System::Runtime::InteropServices::ComTypes::FILETIME *pftLastWriteTime = (System::Runtime::InteropServices::ComTypes::FILETIME *)0)" (deklared in 5685 von "C:\VisualStudio\VC\atlmfc\include\AtlBase.h")".    c:\VisualStudio\VC\atlmfc\include\atlbase.h 5826    25  Start IPC2

有什么想法吗?

最好的, HH

1 个答案:

答案 0 :(得分:1)

确保已将OpenCV库设置为Visual Studio的正确版本。

在这种情况下,将它们从VS11更改为VS12,它将起作用。你得到的错误只会让你走上痛苦和困惑的道路。