我从Tessnet2下载了http://www.pixel-technology.com/freeware/tessnet2/项目,我可以在Visual 2008中很好地构建它。但是,我需要为.NET 4重新编译它。我对C++知之甚少,但是当我尝试用VS 2010编译时,我遇到的错误是:
错误4错误C2439:'std::_Pair_base<_Ty1,_Ty2>::first‘:成员无法初始化C:\Program (X86)\MicrosoftVisualStudio10.0\VC\include\实用程序163 1 tessnet2
错误6错误C2439:'std::_Pair_base<_Ty1,_Ty2>::second‘:成员无法初始化C:\Program (X86)\MicrosoftVisualStudio10.0\VC\include\实用程序163 1 tessnet2
错误3错误C2440:“初始化”:无法从“int”转换为“ScrollView*”C:\Program (X86)\MicrosoftVisualStudio10.0\VC\include\实用程序163 1 tessnet2
错误5错误C2440:“初始化”:无法从“int”转换为“SVEvent*”C:\Program (X86)\MicrosoftVisualStudio10.0\VC\include\实用程序163 1 tessnet2
我假设您不能仅仅在2010年打开一个2008年的C++项目,并且像大多数实际的.NET项目那样进行简单的转换。但是,如果有人能给我一些洞察力的话,我很感激。
发布于 2012-01-06 20:09:21
我也有同样的问题。
VS2010编译器似乎比VS2008编译器更严格地将NULL定义为文字0。因此,必须显式地将该项目中的空引用强制转换为其相应的类类型。
具体来说,您必须对scrollview.cpp文件进行以下四个更改才能编译该项目:
--改行137号
std::pair<ScrollView*, SVEventType> awaiting_list_any_window(NULL,
SVET_ANY); 至
std::pair<ScrollView*, SVEventType> awaiting_list_any_window((ScrollView*)NULL,
SVET_ANY);--更改行409
waiting_for_events[ea] = std::pair<SVSemaphore*, SVEvent*> (sem, NULL);至
waiting_for_events[ea] = std::pair<SVSemaphore*, SVEvent*> (sem, (SVEvent*) NULL);--换行427
std::pair<ScrollView*, SVEventType> ea(NULL, SVET_ANY);至
std::pair<ScrollView*, SVEventType> ea((ScrollView*)NULL, SVET_ANY);--换行429
waiting_for_events[ea] = std::pair<SVSemaphore*, SVEvent*> (sem, NULL);至
waiting_for_events[ea] = std::pair<SVSemaphore*, SVEvent*> (sem, (SVEvent*) NULL);https://stackoverflow.com/questions/7084957
复制相似问题