VS2017如何创建C ++ CLR Windows窗体应用程序?

C++/CLR深度分析分享交互讲解 一、什么是CLR.NET 提供了一个称为公共语言运行时 (Common Language Runtime, CLR) 的运行时环境,它运行代码并提供使开发过程更轻松的服务。公共语言运行时的功能通过编译器和工具公开,你可以编写利用此托管执行环境的代码。 使用面向运行时的语言编译器开发的代码称为托管代码。 托管代码具有许多优点,例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。——摘自微软.NET文档简单来讲,就是将C++基础设施构建在.NET框架之上,使 阅读详情

VS2017 C++/CLR无法使用windows窗体。网上查资料是微软从VS2012起就故意这么干,逼用户转向C#或VB。

搜了一上午终于找到解决方案,附后。

 

方法一: 安装插件:

VS2017 2019可以在VS插件中搜索1个德国人写的C++/CLR WINDOWS FORMS插件安装。

然后新建项目。

使用这个模板自动加1个窗体和相应代码,但是如果你试着自己手动加第二个窗体就仍然出错,并且不知其所以然。还有个笨办法,用支持C++/CLR WINDOWS窗体程序的老VS 2010,2008创建工程,添加窗体。然后在新VS中导入、升级。不过这样还是面临着你如果新增窗体就会出错。

方法二:祖传纯手工解决法(2017中测试通过)

原帖:https://social.msdn.microsoft.com/Forums/vstudio/en-US/9f0d10d4-4f1d-44fa-99ed-da08e7f25fc7/windows-forms-application-in-visual-c-

以下是粗鄙翻译,可能词不达意,英文原文复制在后

问题:我没有找到“UI”和Windows窗体那里..如何安装它?什么版本的Visual Studio?

答:如何创建C ++ CLR Windows窗体应用程序。对于VS2017,它必须是26206或更高版本,否则Designer失败。

【截图自2019,测试通过】

使用默认名称Project1创建一个新的C ++ CLR空项目

在解决方案资源管理器中
  右键单击:Project1 


    选择:属性

左侧属性
  展开:配置属性
  展开:链接器
  选择:系统

在子系统下
  选择右侧:窗口(/ SUBSYSTEM:WINDOWS)

在左侧
  选择:高级

在右边的入口点
  输入:Main
(区分大小写)

选择按钮:确定

在解决方案资源管理器中
  右键单击:Project1
  选择:添加
  选择:新建项


在左边
  展开:已安装
  展开:Visual C ++ 
  选择:UI

在右边
  选择:Windows窗体
只需使用默认名称MyForm.h ... 
  选择:添加
等待它加载并解析所有文件!

现在关闭崩溃的窗体设计器!

在解决方案资源管理器中
  展开: Project1 
  展开:源文件
  右键单击:MyForm.cpp 
  选择:查看代码

将以下代码粘贴到#include“MyForm.h”下面

using namespace Project1;

[STAThread]
void Main(array<String^>^ args)
{
  Application::EnableVisualStyles();
  Application::SetCompatibleTextRenderingDefault(false);

  MyForm form;
  Application::Run(%form);
}

选择:文件
选择:全部保存

以使设计器在VS2017 build 26206.0或更高版本中工作... 


选择:文件
选择:关闭解决方案

VS完成后自行清理

打开解决方案,设计器现在可以正常工作。

-祝开心!
fh:)_~ 
RIP Hammer 锐 蛤蟆

建议作为 hst12的答案 2017年3月27日星期一上午11:26

补遗:现在可以继续添加新窗体了。添加新窗体后,新窗体的设计器还是会崩溃!不要慌,关闭它,然后全部保存文件,再选择关闭解决方案。最后重新打开project1,即可。

---------------------------------------------------------------------------------
Create a new project, in "Visual C++" select 'CLR' and then select 'CLR Empty Project', wait till the project loaded completely, after that click on "Project" then "Add New Item..." then on the left side choose "UI" then choose "Windows Form".


I dont find "UI" and windows form there.. How to install it?
What version of Visual Studio?

How to create a C++ CLR Windows Forms Application. For VS2017 it must be build 26206 or later else Designer fails.

Create a new C++ CLR Empty Project with the default name of Project1

In Solution Explorer
  Right Click: Project1
    Select   : Properties

On Left side
  Expand   : Configuration Properties
  Expand   : Linker
  Select   : System

On right side under SubSystem
  Select   : Windows (/SUBSYSTEM:WINDOWS)

On Left side
  Select   : Advanced

On Right side under Entry Point
  Enter    : Main
(Case sensitive)

Select Button: OK

In Solution Explorer
  Right Click: Project1
  Select     : Add
  Select     : New Item
On Left
  Expand     : Installed
  Expand     : Visual C++
  Select     : UI
On Right
  Select     : Windows Form
Just use the default name of MyForm.h ...
  Select     : Add
Wait for it to load and parse all files!
Close the crashed Designer!

In Solution Explorer
  Expand:    : Project1
  Expand     : Source Files
  Right Click: MyForm.cpp
  Select     : View Code

Paste the following code below the #include "MyForm.h"

using namespace Project1;

[STAThread]
void Main(array<String^>^ args)
{
  Application::EnableVisualStyles();
  Application::SetCompatibleTextRenderingDefault(false);

  MyForm form;
  Application::Run(%form);
}


Select : File
Select : Save All

Now to get the Designer to work in VS2017 build 26206.0 or later ... 
Select : File
Select : Close Solution

After VS is done cleaning up after itself

Open the Solution, Designer should now work.

-Enjoy
fh : )_~
RIP Hammer

Proposed as answer by hst12 Monday, March 27, 2017 11:26 AM
Monday, February 20, 2017 12:46 AM
 

使用CLR对C++ dll进行封装 CLR生成NET.FrameWorks框架下的dll 阅读详情

相关推荐

如何利用VS2017创建一个简单的窗口

#如何利用VS2017创建一个简单的窗口 1、新建->Windows桌面向导 2、应用程序类型->桌面应用程序,点击确定 3、点击调试->开始调试 可建立如下图的窗口 4、可以在生成的项目文件的中找到windows17_2的应用程序,打开界面如下: 注:新建空白项目也可以,注意在解决方案资源器中添加.cpp文件,如源.cpp文件,下载代码见博文 ...

weixin_46894139的博客 2890

VS2017创建CLR项目.docx

本资源描述如何使用VS2017创建C++ CLR工程,在C++ 项目中使用windowsform桌面结构

详细——VS2015(2017)如何创建C ++ CLR Windows窗体应用程序

VS2017如何创建C ++ CLR Windows窗体应用程序 微软从VS2012起就希望用户使用C#或VB来创建Windows窗体应用程序,所以逐渐去掉了C ++ CLR 创建Windows窗体应用程序的功能。 本解决方案为手工解决方案,适合VS2013及以上所有版本。欢迎大家采用。 这个方法在CSDN中已经有很多人解释过了,本人只是想尽可能详细的再说一下。 使用默认名称Project1创建一...

dfgxdrfxs的博客 4588

「C++学习笔记」面向.Net Core的(C++)CLR类库非专业入门(+使用Opencv)

关键词:C++/CLR, .Net Core, .Net Famework, Opencv, C# 有关C++/CLI这块的资料真的很少而且都属于翻墙教程(新手找不到门的,和进了门才能懂的) 参考其他资料,已经微软官方说明,以及新建项目时的项目模板说明: 什么是CLR类库 简单的说: CLR类库,是C++语言的一种扩充,目的是面向C#(.NET)的, 一方面,可以在C++中调用.N...

Raink的博客 7089

C#调用C++类,托管C++方式实现(创建C++ CLR dll项目)

C#调用C++编写的dll库

csdndenglu的专栏 4311

VS2015(2017)如何创建多个C ++ CLR Windows窗体应用程序

本人在上一篇文章中介绍了如何使用VS2017创建CLR Windows窗体:https://blog.csdn.net/dfgxdrfxs/article/details/102903177 在本文将介绍如何创建多个窗体 也就是常说的窗体调用。 在VS较低的版本中,选择添加新项,即可添加多个窗体。 但是在VS2013及以上版本中则需要我们另辟蹊径。 以创建两个窗体为例进行说明。 首先我们按照本人上...

dfgxdrfxs的博客 2154

VS2017基于CLR运行环境的VC++.NET界面编程(数据库为mysql)

VC++.NET

m0_49447039的博客 1331

成功实现C++调用C#写的库(CLR),我的个人心得与总结

一、先说说我的个人心得 我新建了C++ win32动态库工程,准备调用C#类库。 //使用CLR的方式,成功实现C++调用C#类库,注意事项: //1. //不要尝试在DllMain或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。 //解决办法: //注释掉dllmain.cpp文件里的主函数BOOLAPIENTRYDllMain //2. //本人在实践工程中遇到两个难点: /......

$firecat利白的代码足迹$ 1万+

【C++】融合菜之C++、C# 和 CLR、CLI

C++提供底层、高性能的功能。C++/CLI是桥梁,允许非托管的 C++ 和托管的 C# 代码进行互操作。C#作为高层次语言,通过调用C++/CLI封装层来使用 C++ 提供的功能。这种架构在需要在 .NET 环境中使用现有的 C++ 代码库时非常有用,比如在处理复杂算法、硬件交互或高性能场景下。

weixin_44939430的博客 2218

VS2017 C++创建winform窗体应用

1 创建CLR空项目。 2 在解决方案资源管理器里 右键项目名称,弹出的对话框选择 属性-配置属性-链接器-系统-子系统-窗口 (/SUBSYSTEM:WINDOWS) 3 在 链接器-高级-入口点-(写入)Main 4点击确定按钮 5 右键项目名称-添加-新建项 6找到并选择UI–WINDOWS窗体–点击添加按钮 7 打开项目中源文件中的Myform.cpp文件, 输入以下代码: ...

qq_40123029的博客 4029

CLR via C#》笔记——CLR的执行模型

一.将源代码编译成托管代码1, CLR(Common Language Runtime)公共语言运行时是一个可由多种语言使用的“运行时”,CLR的核心功能(比如内存管理,程序集加载,安全性,异常处理和线程同步)可由面向CLR的所有语言使用。如“运行时”使用异常来报告错误,所以面向“运行时”的所有语言都能通过异常来报告错误。2, 可以将编译器视为语法检查器和“正确代码”的分析器,他们检查你的代码,确...

weixin_34292287的博客 348

c++ 调用c#dll (2种方式,com组件和clr工程)

c++ 调用c#dll ,com组件和clr工程两种方式分别实现成功

qq_43525389的博客 9095

c++关于windows窗体编程简单实例

Windows 操作系统提供了各种各样的函数,以方便我们开发windows应用程序,这些函数是windows操作系统提供给应用程序编程的接口(Appliaction Programming Interface),简称为API函数所有主要的Windows函数都是在Windows.h头文件中进行了声明。 所谓的Win32 SDK(Software Development Kit)为软件开发包,是开发

小龙王2010 8926

VS2015创建Windows窗体应用程序(C++

VS2015没有自带CLR窗体应用程序的模板,在创建窗体应用程序时极为不便。网上通常的做法是创建一个CLR空项目,然后一步一步添加文件,一点一点修改配置,费了许多功夫,对于初学者来说还不一定能成功。。。 相关的操作详见:C++/CLR 使用(VS2012,VS2013,VS2015)编写Windows窗体应用程序 使用联机模板 快速创建Windows窗体应用程序项目 1. 新建项目,点击“单...

蔡兵的专栏 2万+

C++/CLI简介(什么是C++/CLI) -------C++/CLI 编程系列一

要知道C++/CLI是什么,首先知道什么是CLI。 一、CLI简介 CLI:(Common Language Infrastructure,通用语言框架)提供了一套可执行代码和它所运行需要的虚拟执行环境的规范。更通俗的我们可以说它是一个虚拟平台,是操作系统和应用程序间的一层抽象。微软的.NET的基础CLR(Common Language Runtime,通用语言运行时)就是CLI的

亿言 1万+

Visual Studio2017窗口程序开发步骤

记录熟悉visual studio关于C#.netFramework的过程

guijianwuming的专栏 5850

关于如何在C#中调用C++的DLL,CLR套壳!

当然如果你的dll是那种类C的接口,就是声明了extern "C" 的,单纯的某个方法的函数(就是纯粹的在Cpp里面写C语言模式的接口,没有实例化对象,没有面向对象,没有类,只有结构体和面向过程),当然你的类大概率是不可能以这种形式去调用的,至于这样的dll 该怎么去调用,聪明的你肯定已经想到了,在主程序里面有很多类似[DllImport "xxx.dll"] extern xxx 的方法,去看吧,那里有你想要的。ok,最恶心的套壳结束了之后,接下来就是调用了。

血色天空的专栏 944

方法1:使用CLR实现C++中导入C#封装Dll文件方法

在C++中导入C#封装库dll

weixin_51686489的博客 1501
上一篇: GUI跨平台开发
下一篇: KLOXO忘记admin密码怎么办?把自己IP设置黑名单了怎么办?
申佳明哥哥
博客等级 码龄10年 39粉丝 84原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值