1

プロジェクトは VC6.0 では正しく動作しますが、VS2012 で更新した後、次のリンク エラーが発生します。

revel.lib(BaseEncoder.obj) : error LNK2019: unresolved external symbol 
    "__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Eos(unsigned int)" 
    (__imp_?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEXI@Z) referenced in function 
    "protected: virtual void __thiscall Revel_BaseEncoder::Reset(void)" (?Reset@Revel_BaseEncoder@@MAEXXZ)

誰でもこの問題を解決できますか? どうもありがとう!

4

1 に答える 1

5

おそらく、現在持っているものよりも古いバージョンの stl の依存関係で構築されたライブラリを使用しているためです。プロジェクトのプロパティから古いツールチェーンを使用するようにコンパイラを設定できるため、VS 2012 を引き続き使用して、古い Visual Studio がまだインストールされている場合にコンパイルすることができます。

編集: プラットフォーム ツールセットを変更するには、[プロジェクトのプロパティ] -> [全般] に移動します。オンラインの msdn ドキュメント (リンクはこちら)に従ってツールチェーンの古いバージョンを選択するために使用できるドロップダウンがある [プラットフォーム ツールセット] というオプションがそこにあるはずです。

上記のドロップダウンにVS 6.0が表示されるかどうかはわかりませんが、表示されない場合は、ここで自分で変更する方法を見つけることができます

于 2013-01-22T19:28:18.090 に答える