从Visual Studio 2005移植到2008或更高版本

时间:2014-11-07 14:44:27

标签: c++ visual-studio-2008 mfc visual-studio-2005 atl

我有一个用Visual Studio 2005实现的项目。我需要再次编译它,但我再也没有Visual Studio 2005了。我只能访问VS 2008,2010和2012.当我编译代码时,我遇到了一些链接器错误,其中许多都是相同的。它如下:

Error   48  error LNK2001: unresolved external symbol "unsigned int (__cdecl* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6AIXZEA)    FEMesh_noacis_AMD64.lib

如果有人能帮我修复这个链接错误,我真的很感激吗?

1 个答案:

答案 0 :(得分:2)

显然你想通过使用匹配的工具重建缺失的代码来解决这个问题...但是如果它是你和成功执行之间的唯一问题,你可以尝试自己定义缺失的符号以满足链接器:

namespace ATL
{
    extern UINT (*g_pfnGetThreadACP)();

    UINT PrivateGetThreadACP()
    {
        CPINFOEX Information;
        ATLVERIFY(GetCPInfoEx(CP_THREAD_ACP, 0, &Information));
        return Information.CodePage;
    }

    UINT (*g_pfnGetThreadACP)() = PrivateGetThreadACP;
};