关于 c : 从 Visual Studio 2005 移植到 2008 或更高版本

Porting from Visual Studio 2005 to 2008 or above

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

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

如果有人能帮助我修复这个链接器错误,我将不胜感激?


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

1
2
3
4
5
6
7
8
9
10
11
12
13
namespace ATL
{
    extern UINT (*g_pfnGetThreadACP)();

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

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