您的位置:首页 > 编程语言 > C语言/C++

.net framework 4.5 使用c++编写窗体(WinForm)应用程序

2014-09-22 13:24 375 查看
装了Visual Studio 2013,准备用熟悉的 .net c++写WinForm程序,发现创建项目时,Visual C++ -》CLR选项,没有Windows窗体应用程序。于是尝试自己配置

首先创建一个Visual C++ CLR空项目,名称为Test

1、创建完成后,打开项目属性选项卡,“通用属性”-》“引用”-》“添加新引用” -》“程序集”,选择System和System.Windows.Form程序集。





这个步骤的作用,是程序可以引用WinForm窗体系列类

2、添加新建项,Visual C++-》UI-》Windows窗体,就命名为MainForm吧,作为程序显示的第一个窗体。

添加main.cpp(我个人习惯,将程序入口点放在main.cpp中,代码如下

#include "MainForm.h"

int main()
{
System::Windows::Forms::Application::Run(gcnew Test::MainForm());
return 0;
}



4、生成、运行。应该看到MainForm窗体显示出来了。但是还有些瑕疵,就是出现了类似MSDOS的控制台窗口,如何不让这个窗口出现呢?



还得配置项目属性。打开项目属性选项卡。“配置属性”-》“链接器”-》“所有选项”-》“子系统”-》“窗口(/SUBSYSTEM:WINDOWS)”



然后生成,发现链接错误,"无法解析的外部符号_WinMain@16"。



那好吧,我把main.cpp中的int main改为int WinMain

#include "MainForm.h"

int WinMain()
{
System::Windows::Forms::Application::Run(gcnew Test::MainForm());
return 0;
}


运行。这回应该不显示类似MSDOS的控制台窗口了。

5、关闭MainForm窗体,退出程序。你会发现,程序异常崩溃了。

“托管调试助手“FatalExecutionEngineError” ......其他信息: 运行时遇到了错误。此错误的地址为 0x690d4191,在线程 0x5f4 上。错误代码为 0xc0000005。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。”



看来还是哪里配置不对

还是配置项目属性。打开项目属性选项卡。“配置属性”-》“链接器”-》“高级”-》“入口点”,改为“main”

然后修改main.cpp代码,将WinMain改成main

#include "MainForm.h"

int main()
{
System::Windows::Forms::Application::Run(gcnew Test::MainForm());
return 0;
}


生成运行,这回应该正常了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐