3

Tessnet2プロジェクトをhttp://www.pixel-technology.com/freeware/tessnet2/からダウンロードし、Visual Studio 2008で正常にビルドできます。ただし、.NET4用に再コンパイルする必要があります。 C ++についてはほとんどありませんが、VS2010でコンパイルしようとしたときに発生するエラーは次のとおりです。

エラー4エラーC2439:'std :: _ Pair_base <_Ty1、_Ty2> :: first':メンバーを初期化できませんでしたC:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ Utility 163 1 tessnet2

エラー6エラーC2439:'std :: _ Pair_base <_Ty1、_Ty2> :: second':メンバーを初期化できませんでしたC:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ Utility 163 1 tessnet2

エラー3エラーC2440:'初期化中':'int'から'ScrollView *'に変換できませんC:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ Utility 163 1 tessnet2

エラー5エラーC2440:'初期化中':'int'から'SVEvent *'に変換できませんC:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ Utility 163 1 tessnet2

2010年に2008C++プロジェクトを開いて、ほとんどの実際の.NETプロジェクトのように単純な変換を行うことはできないと思います。しかし、誰かが私にこれについての洞察を与えることができれば、私はそれを感謝します。

4

1 に答える 1

2

私も同じ問題を抱えていました。

VS2010コンパイラは、NULLがリテラル0として定義されていることについて、VS2008コンパイラよりも厳密であるようです。したがって、このプロジェクトのNULL参照を対応するクラスタイプに明示的にキャストする必要があります。

具体的には、プロジェクトをコンパイルするには、scrollview.cppファイルに次の4つの変更を加える必要があります。

-行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);
于 2012-01-06T20:09:21.420 に答える