古いVC6ソリューションをVS2010にアップグレードしようとしています。すべてが正常にコンパイルされますが(VC ++の変更を処理するためにいくつかのコードを変更した後)、リンクを拒否します。6つの静的ライブラリがあります-すべて「共有DLLでMFCを使用する」と「ATLを使用しない」に設定されています-Unicode文字セットと1つのアプリケーション(.EXE)が「標準のWindowsライブラリを使用する」と「ATLを使用しない」に設定されています"(もちろんUnicodeも)。このソリューションは、Visual Studio 2005(SP1)を使用して正常にコンパイル/リンクしますが、リンクはVS2008とVS2010の両方で失敗します。エラーメッセージは主に「CStringT」に関連しています。私が調査したすべてのことから、VS2005でもこれらのCStringTリンクエラーが発生するはずです(つまり、CStringがテンプレートクラスに変更されたとき)が、前述したように、VS2005では正常にリンクします。私はすべてのヒントを試しました&ここや他の場所で推奨されているトリック(つまり、stdafx.hヘッダーにCStringTのテンプレートクラスを明示的にインポートする)ですが、運がありません。誰か新しいアイデアがありますか?参考までに、以下のエラーのサンプルを貼り付けます。ありがとう!
error LNK2001: unresolved external symbol "public: class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > const & __thiscall SomeExceptionClass::GetErrorMessage(void)const " (?GetErrorMessage@SomeExceptionClass@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@XZ)
error LNK2001: unresolved external symbol "public: class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > const & __thiscall SomeExceptionClass::GetErrorMessage(void)const " (?GetErrorMessage@SomeExceptionClass@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@XZ)
error LNK2019: unresolved external symbol "public: class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > const & __thiscall SomeExceptionClass::GetErrorMessage(void)const " (?GetErrorMessage@SomeExceptionClass@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@XZ) referenced in function __catch$?Init@SomeOtherClass@@QAEHPA_W00000@Z$0
error LNK2001: unresolved external symbol "public: class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > const & __thiscall SomeExceptionClass::GetErrorMessage(void)const " (?GetErrorMessage@SomeExceptionClass@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@XZ)
error LNK2001: unresolved external symbol "public: class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > const & __thiscall SomeExceptionClass::GetErrorMessage(void)const " (?GetErrorMessage@SomeExceptionClass@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@XZ)
error LNK2001: unresolved external symbol "public: class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > const & __thiscall SomeExceptionClass::GetErrorMessage(void)const " (?GetErrorMessage@SomeExceptionClass@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@XZ)
error LNK2001: unresolved external symbol "public: void __thiscall SomeDatabaseClass::ExecDirect(class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > const &)" (?ExecDirect@SomeDatabaseClass@@QAEXABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z)
error LNK2001: unresolved external symbol "public: void __thiscall SomeDatabaseClass::ExecDirect(class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > const &)" (?ExecDirect@SomeDatabaseClass@@QAEXABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z)