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
|
如果有人能帮助我修复这个链接器错误,我将不胜感激?
- 您是否检查过以确保它所要求的库确实是使用相同版本的 Visual Studio 构建的?
- 你是对的……该库是用 VS 2005 编译的。我也无权访问该库代码,它是公司内部代码,在互联网上找不到 :(
- 我不认为 VC2005 和 VC2008 之间的名称修改已更改(或从那时起!)所以也许您只是缺少链接器设置中对库的 lib 引用? (我一直通过在 Debug 构建中添加一个库,然后看着 Release 构建失败……)
显然你想通过使用匹配工具重建丢失的代码来解决这个问题……但是,如果这是你和成功执行之间的唯一问题,你可以尝试自己定义丢失的符号以满足链接器:
1
2 3 4 5 6 7 8 9 10 11 12 13 |
namespace ATL
{ extern UINT (*g_pfnGetThreadACP)(); UINT PrivateGetThreadACP() UINT (*g_pfnGetThreadACP)() = PrivateGetThreadACP; |
- 伟大的!它真的解决了我的问题! :D
来源:https://www.codenong.com/26803730/