尝试在Visual Studio 2010中编译Tessnet2 (Visual Studio 2008 c++)项目

Trying to compile Tessnet2 (Visual Studio 2008 C++) project in Visual Studio 2010

本文关键字:Studio Visual 2008 c++ 项目 Tessnet2 2010 编译      更新时间:2023-10-16

我从http://www.pixel-technology.com/freeware/tessnet2/下载了Tessnet2项目,我能够在Visual Studio 2008中构建它。然而,我需要为。net 4重新编译它。我对c++知之甚少,但当我尝试用VS 2010编译时,我得到的错误是:

错误4错误C2439: 'std::_Pair_base<_Ty1,_Ty2>::first':成员无法初始化C:Program Files (x86)Microsoft Visual Studio 10.0VCincludeutility 163 1 tessnet2

错误6错误C2439: 'std::_Pair_base<_Ty1,_Ty2>::second':成员无法初始化C:Program Files (x86)Microsoft Visual Studio 10.0VCincludeutility 163 1 tessnet2

错误3错误C2440: '初始化':无法从'int'转换为'ScrollView *' C:Program Files (x86)Microsoft Visual Studio 10.0VCincludeutility 163 1 tessnet2

错误5 C2440: '初始化':无法从'int'转换为'SVEvent *' C:Program Files (x86)Microsoft Visual Studio 10.0VCincludeutility 163 1 tessnet2

我假设你不能在2010年打开一个2008年的c++项目,然后像大多数实际的。net项目一样做一个简单的转换。但是,如果有人能给我一些见解,我很感激。

我也遇到过同样的问题。

似乎VS2010编译器对NULL定义为文字0比VS2008更严格。因此,您必须显式地将这个项目中的NULL引用转换为相应的类类型。

具体来说,您必须对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);