我尝试将可能使用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
答案 0 :(得分:1)
确保已将OpenCV库设置为Visual Studio的正确版本。
在这种情况下,将它们从VS11更改为VS12,它将起作用。你得到的错误只会让你走上痛苦和困惑的道路。