加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

.net – LNK2022(重复管理类型有不同的可见性)在MSVS 2012

发布时间:2020-12-16 03:33:50 所属栏目:百科 来源:网络整理
导读:我正在将解决方案从MSVS2005移植到MSVS2012.这些项目在C .NET中,但也使用自制的本地C库.我们在2005年构建项目时没有问题,但现在,我无法使用2012构建项目.我收到以下错误消息: MyFile.obj:错误LNK2022:元数据操作失败(801311E4):重复的受管类型具有不同的
我正在将解决方案从MSVS2005移植到MSVS2012.这些项目在C .NET中,但也使用自制的本地C库.我们在2005年构建项目时没有问题,但现在,我无法使用2012构建项目.我收到以下错误消息:

MyFile.obj:错误LNK2022:元数据操作失败(801311E4):重复的受管类型具有不同的可见性.

这是什么意思?你需要什么信息来帮助我?

谢谢你的帮助?

解决方法

我发现了这个bug.这是在这里建议的一切的混合.

在项目的某处,包括一个本机C头文件.这个文件中的一个类是公开的:

#include "File_Where_ClassName_Is_Defined.h"
#pragma make_public( ClassName )

但是在我自己的代码中,我包含一个第二个标题,它自己包括定义了公共类的头.所以,在这一点上,同一个项目中的另一个文件中,一个文件中的“公开”和“不公开”. “复制与不同的可见性”来自那里.

发送错误路径的唯一问题是错误消息:“重复的受管理类型具有不同的可见性”.但在这里,这是一种非托管类型.

所以,如果有一天遇到这个错误,那么在项目中寻找一个#pragma make_public(…),然后在你的问题文件中查找一个重复的包含.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读