【问题标题】:LNK2022 when converting VS2010 project from 32-bit to 64-bit将 VS2010 项目从 32 位转换为 64 位时的 LNK2022
【发布时间】:2019-05-20 04:23:39
【问题描述】:

我正在将 VS2010 项目从 32 位转换为 64 位。编译正常,但是当它尝试链接时,我收到以下错误:

 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _GUID; fields: <alignment member>): (0x040000bc).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_GUID): (0x020000bc).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x040000c0).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagMSG): (0x020000c0).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HWND__; fields: <alignment member>): (0x040000c1).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HWND__): (0x020000c1).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagRECT; fields: <alignment member>): (0x040000c9).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagRECT): (0x020000c6).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HDC__; fields: <alignment member>): (0x040000ca).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HDC__): (0x020000c7).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x040000de).
 1>MSVCURTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_SECURITY_ATTRIBUTES): (0x020000d3).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _GUID; fields: <alignment member>): (0x04000036).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_GUID): (0x02000037).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000037).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagMSG): (0x02000038).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HWND__; fields: <alignment member>): (0x04000038).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HWND__): (0x02000039).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagRECT; fields: <alignment member>): (0x0400003b).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagRECT): (0x0200003b).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HDC__; fields: <alignment member>): (0x0400003c).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HDC__): (0x0200003c).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x04000044).
 1>MSVCURTD.lib(dbgdel.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_SECURITY_ATTRIBUTES): (0x0200003d).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _GUID; fields: <alignment member>): (0x04000034).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_GUID): (0x02000035).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000035).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagMSG): (0x02000036).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HWND__; fields: <alignment member>): (0x04000036).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HWND__): (0x02000037).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagRECT; fields: <alignment member>): (0x04000039).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagRECT): (0x02000039).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HDC__; fields: <alignment member>): (0x0400003a).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HDC__): (0x0200003a).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x04000042).
 1>MSVCURTD.lib(delete2.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_SECURITY_ATTRIBUTES): (0x0200003b).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _GUID; fields: <alignment member>): (0x04000033).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_GUID): (0x02000034).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000035).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagMSG): (0x02000036).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HWND__; fields: <alignment member>): (0x04000036).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HWND__): (0x02000037).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagRECT; fields: <alignment member>): (0x04000039).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagRECT): (0x02000039).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HDC__; fields: <alignment member>): (0x0400003a).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HDC__): (0x0200003a).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x04000042).
 1>MSVCURTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_SECURITY_ATTRIBUTES): (0x0200003b).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _GUID; fields: <alignment member>): (0x04000049).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_GUID): (0x0200005e).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x0400004f).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagMSG): (0x02000065).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HWND__; fields: <alignment member>): (0x04000050).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HWND__): (0x02000066).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagRECT; fields: <alignment member>): (0x04000067).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagRECT): (0x02000070).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HDC__; fields: <alignment member>): (0x04000068).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HDC__): (0x02000071).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x04000083).
 1>MSVCURTD.lib(xmutex.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_SECURITY_ATTRIBUTES): (0x02000077).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _GUID; fields: <alignment member>): (0x04000033).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_GUID): (0x02000034).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x0400003a).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagMSG): (0x0200003b).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HWND__; fields: <alignment member>): (0x0400003b).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HWND__): (0x0200003c).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagRECT; fields: <alignment member>): (0x04000040).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagRECT): (0x02000040).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HDC__; fields: <alignment member>): (0x04000041).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HDC__): (0x02000041).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x0400004b).
 1>MSVCURTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_SECURITY_ATTRIBUTES): (0x02000044).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _GUID; fields: <alignment member>): (0x04000035).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_GUID): (0x02000036).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000039).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagMSG): (0x0200003a).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HWND__; fields: <alignment member>): (0x0400003a).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HWND__): (0x0200003b).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagRECT; fields: <alignment member>): (0x0400003f).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagRECT): (0x02000040).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HDC__; fields: <alignment member>): (0x04000040).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HDC__): (0x02000041).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x0400004c).
 1>MSVCURTD.lib(_tolower.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_SECURITY_ATTRIBUTES): (0x02000046).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _GUID; fields: <alignment member>): (0x04000034).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_GUID): (0x02000035).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000038).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagMSG): (0x02000039).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HWND__; fields: <alignment member>): (0x04000039).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HWND__): (0x0200003a).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagRECT; fields: <alignment member>): (0x0400003e).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagRECT): (0x0200003f).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: HDC__; fields: <alignment member>): (0x0400003f).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (HDC__): (0x02000040).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x0400004b).
 1>MSVCURTD.lib(xwctomb.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_SECURITY_ATTRIBUTES): (0x02000045).
 1>MSVCURTD.lib(_toupper.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _GUID; fields: <alignment member>): (0x04000034).
 1>MSVCURTD.lib(_toupper.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (_GUID): (0x02000035).
 1>MSVCURTD.lib(_toupper.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000037).
 1>MSVCURTD.lib(_toupper.obj) : error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (tagMSG): (0x02000038).
 1>LINK : fatal error LNK1255: link failed because of metadata errors

这个项目主要是一个连接到 .dll 的 Windows 窗体 GUI。 .dll 是一个单独的 VS2010 项目,编译和链接很好。

我已经为这个问题苦苦挣扎了 2 天,不知道下一步该往哪里看。

请让我知道任何其他可能有用的细节。

【问题讨论】:

  • 仍然与某些 32 位而不是 64 位的库(静态或动态)链接?
  • 艾伦,谢谢这是一个很好的链接。该链接中的一项建议建议将 Struct Member Alignment 更改为 16 个字节。这样做可以让它正确链接......现在我只需要弄清楚它如何/是否会影响我的代码。

标签: c++ winforms visual-studio-2010 clr


【解决方案1】:

在项目设置->配置属性->C/C++->代码生成中将结构成员对齐更改为“字节”。

这是因为 64 位不支持 4 字节结构对齐。它至少需要 8 个字节 (8x8 =64)。您可以在设置中更改此选项以解决编译错误。这并不意味着您的程序会正常运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多