visual studio2017中C++节点中为啥没有CLR项,是要添加哪个部件吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了visual studio2017中C++节点中为啥没有CLR项,是要添加哪个部件吗?相关的知识,希望对你有一定的参考价值。

在下想用C++创建窗体应用,了解到用CLR空项目,但是在我的新建项目中并没有这个选项

参考技术A

参考技术B 与VS 2015相比,Visual Studio 2017在C ++功能方面有重大的飞跃。我们希望升级到新版本后能让您的日常工作变得更轻松。http://www.arpun.com/soft/8490.html
这篇文章主要介绍从Visual Studio 2015升级到2017的步骤。在这个版本中,我们团队使代码库移动到Visual Studio 2017非常容易。这里有四个原因。
通过Visual Studio 2017安装程序获取MSVC 2015.3工具集
在Visual Studio 2017中加载使用较老C++工具集的C++工程,并不会改变C++工程。 这允许你在以前的IDE中加载这个工程,以备你需要使用之前的IDE加载工程,或者你仍然有队友把VS没有完全升级到2017。为了使工程在Visual Studio 2017加载中不受到任何影响,就像在以前的版本中,IDE支持工程往返。
在以前的版本中,为了能够构建项目,必须同时安装最新版本和旧版本的Visual Studio。 现在Visual Studio 2017允许您直接安装MSVC 2015(v140)工具集,使其便于引导新机器,通过仅安装所需的工具集而不是整个VS 2015 IDE来减少安装所需的磁盘空间。

MSVC 2017 中的VC运行时与2015二进制兼容
这个版本的Visual Studio中C++编译器和库有很多改进,这将引导您转换到Visual Studio 2017的最新工具集(v141)- 新的标准一致性功能,改进的代码生成功能,更快的构建吞吐量。 然而,您可能担心您的第三方库依赖关系没有准备好这样的跳转。 我们经常听到客户说对于一个新的C++工具集来说这是第一个迁移拦截器(无论它们将依赖性作为二进制文件还是直接作为源)。
但是,使用最新的MSVC工具集,您不需要担心这一点。 这是因为最新的VC运行时与VS 2015的VC运行时二进制兼容。 换句话说,如果你有一个使用v140平台工具集构建的库,现在即使你使用v141 MSVC工具集构建代码,您的二进制文件和使用它的代码也将继续工作。
使用MSVC v141工具集构建的任何二进制文件都将链接到VC运行时的140版本。 VCRedist只是向后兼容,所以你需要使用你的APP在VS 2017中重新发布最新的VCRedist 140。
C:srcClockAppDebug>dumpbin ClockApp.exe /IMPORTS | findstr .dll
mfc140ud.dll
KERNEL32.dll
USER32.dll
GDI32.dll
COMCTL32.dll
OLEAUT32.dll
gdiplus.dll
VCRUNTIME140D.dll
ucrtbased.dll
Vcpkg上的数百个C ++ 库在Visual Studio 2017中可用
如果你还没有听说过VCPkg,不用担心 — 这是一个来自微软的开源项目,以帮助简化在Windows上的开源库的采集和构建。 如果你在一个或多个开源依赖项上使用Visual Studio 2015中的Vcpkg,那么你会很乐意知道这些库(在编写本文时接近180),使用MSVC v141工具集编译,并可以在Visual Studio 2017工程中使用。
因为v141与v140是二进制兼容的,所有已经有的包将继续工作,而不需要重新编译; 然而,我们建议重新编译,这样你可以体验我们添加到v141编译器的新的优化!
MSVC编译器版本转换为19.1(从Visual Studio 2015中的19.0)
最后很重要的一点,MSVC v141工具集的编译器部分仅在Visual Studio 2017中作为次要版本进行了改进。请注意,我们将继续朝着C++ 一致性以及代码的生成功能方向进行改进。 在进行这些改进后,您可能需要进行某些更改以使您的代码符合标准。 所有这些更改都记录在docs.microsoft.com 的Visual Studio 2017主题中的C++ 一致性改进。

采取行动
Visual Studio 2017具有许多新功能,还不赶紧去使用。 这就是为什么使项目从Visual Studio 2015转换变得 “太容易”。

在 makefile 中为 Visual Studio C++ 构建定义宏

【中文标题】在 makefile 中为 Visual Studio C++ 构建定义宏【英文标题】:define macro in makefile for visual studio C++ build 【发布时间】:2013-05-13 06:58:35 【问题描述】:

我有两个通过显式链接使用相同 .dll 的 exe,它们都做一些特定的工作,它们通过一些宏来区分。我已经创建了一个 make 文件来构建 dll,现在如何在 makefile 中定义该宏,以便我可以生成相应的 dll 供我使用。 虽然我的构建是在 Windows 上,并且我使用的是 Visual Studio 编译器,但任何输入都是可观的。

【问题讨论】:

【参考方案1】:

当您运行make 时,您可以在命令行上设置宏。这些宏在 make 运行期间变为只读(换句话说,它们会覆盖您可能在 Makefile 中尝试的任何分配)。

因此,创建一个基于 make 的 VisualStudio 项目。对于 Debug 配置,确保它运行

make TARGET=Debug

对于Release配置

make TARGET=Release

【讨论】:

以上是关于visual studio2017中C++节点中为啥没有CLR项,是要添加哪个部件吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2012 中为我的 c++ 项目设置 Aquila

Visual Studio 可以在 C++ 头文件中为我管理函数原型吗?

在 Visual Studio 2010 C++ 中为 /// 生成 XML 文档注释

在 makefile 中为 Visual Studio C++ 构建定义宏

如何在 Visual Studio 2017 中为 Windows XP 编译代码

如何在 Visual Studio 2017 中为 Linux 应用启用多线程