Visual studio 无法浏览以包含VisualStudioC++ + DLL项目中的引用-有什么办法可以绕过这个问题吗? 我在VisualStudio 2015中使用C++创建了一个DLL。我从以下几点开始我的项目

Visual studio 无法浏览以包含VisualStudioC++ + DLL项目中的引用-有什么办法可以绕过这个问题吗? 我在VisualStudio 2015中使用C++创建了一个DLL。我从以下几点开始我的项目,visual-studio,visual-studio-2010,visual-c++,visual-studio-2012,dll,Visual Studio,Visual Studio 2010,Visual C++,Visual Studio 2012,Dll,我需要为我的项目添加一个引用,这样我就可以使用API,并且,与C DLL项目不同,例如,当单击“项目”>“添加引用”时,我无法访问“浏览”选项卡 这是因为: “添加引用”对话框顶部可用的选项卡数 框可以根据打开的项目类型和资源而有所不同 它正在使用。C++本地项目只包含项目选项卡。 为什么会有这样的限制?有没有办法绕过它 编辑:我刚刚找到一个解决方案,但我是Visual Studio的新手,不知道如何设置“CLR选项”,然后在添加引用后删除。如果有人能解释如何做到这一点,我将非常感激我在晚会上有

我需要为我的项目添加一个引用,这样我就可以使用API,并且,与C DLL项目不同,例如,当单击“项目”>“添加引用”时,我无法访问“浏览”选项卡

这是因为:

“添加引用”对话框顶部可用的选项卡数 框可以根据打开的项目类型和资源而有所不同 它正在使用。C++本地项目只包含项目选项卡。

为什么会有这样的限制?有没有办法绕过它


编辑:我刚刚找到一个解决方案,但我是Visual Studio的新手,不知道如何设置“CLR选项”,然后在添加引用后删除。如果有人能解释如何做到这一点,我将非常感激

有一个指令,用于将项目添加到C++项目的项目引用中,您可能会发现该项目可以用于读取。看


对于C++项目中的一些一般背景,可以引用引用。请参阅这篇文章,他们在Visual C++ 2010中被更新了。

< P>我在晚会上有点晚了,但是最近我遇到了类似的问题,并且有一个解决方案,可能会帮助OP或其他人。 问题概述: 在VisualStudio(2)中打开VisualC++项目[1 ]。在顶部工具栏中,单击项目>添加引用。在弹出的窗口中,没有“浏览”按钮/选项“查看图像”

解决方案: 在顶部工具栏中,单击项目>属性[3]。在弹出窗口的左侧导航面板中,单击Configuration Properties>General(配置属性>常规),默认情况下可能会选择此选项。在右侧面板中,单击项目默认值>公共语言运行时支持。字段值应为“无公共语言运行时支持”请参见图。使用公共语言运行时支持字段(灰色向下箭头框)中的下拉菜单,选择命令语言运行时支持/clr。应用更改。属性页现在应该是这样的。单击“确定”关闭属性页。现在,当您添加引用时,显示的窗口将有一个浏览。。。按钮,看起来像。如果要随后删除CLR支持[4],请选择“无公共语言运行时支持”选项并应用更改

注:

(1),如您可能知道的,在VS中创建新项目时,可以从各种项目类型中选择。我对VisualC++模板中包含的大部分VisualC++项目类型进行了实验。由于在添加引用时缺少浏览选项似乎与CLR支持相关,所以在所有未被视为VisualC++ + CLR项目的Visual C++项目类型中,您将遇到这个问题。因此,如果希望避免问题,请考虑从一开始就创建CLR项目。 [2] 我能够在Visual Studio 2015、2017和2019中复制该问题;相同的解决方案适用于所有版本

[3] 在更改任何配置属性之前,请使用属性页左上角的配置下拉列表选择要更改属性的配置,例如调试、发布、全部


[4] 如果您在打开CLR支持后添加了引用,那么关闭CLR支持是可疑的,正如@Cody Gray在对原始问题的评论中所建议的那样。在做了这样的事情之后,我还没有尝试过构建一个项目,所以我不能对建议的解决方案发表意见。我的答案只是告诉您如何更改CLR支持。

这行不通。托管程序集可以支持许多额外的细节,因为它们包含额外的元数据,以及在中设计的额外管道。标准的LIB和DLL文件没有这个功能。如果你想写本机代码,你必须更加努力。将不会浏览参考资料。务必仔细阅读相应的文档。C和VB.NET文档与本地C++程序员无关。@ CodyGray,当你说“这不可行”时,你指的是我在编辑中链接到的解决方案吗?是的,有点。如果启用CLR选项,那么您可以将基于N.CCL+的本地C++项目转换为托管C++项目。这意味着您不是在发射本机二进制文件,而是在发射托管程序集,因此您可以使用所有高级工具。但是,如果禁用CLR支持,则没有 我没能比电脑聪明。您添加的引用将变得毫无意义,因为它们引用的方式在当前配置中不受支持。