抛弃MFC, 转向.Net

 现在我们的工具全是MFC的, 维护起来那叫一个郁闷

一直在找一个C++中好用的UI库, 看过Qt(看起来到不错, 懒得学), wxWidgets(跟MFC一个样), 剩下的就不说了......

前段时间发现了Xtreme ToolkitPro, 里面那些Samples很强大, 也有过用它来做界面的冲动

但是想想, 这东西还是基于MFC, 一样还是要手动写........

很怀念大学时在C#里整得那些东西, 做界面超级方便

但是, 要在C#里用C++的东西, 还要中间再加一层, 隔着衣服摸起来怎么会爽~~~

后来跟朋友讨论一番, 发现C++/CLI可以一用

语法已经比托管C++看起来爽多了, 至少那一堆下划线已经消失了

出去溜冰回来就直接写了个小程序试了试, 嗯嗯, 终于找到当年写Java和C#的感觉了!

看起来还不错吧? 第一次用CLR, 花了几个小时就弄出来了, .Net的库还是很好用的, 基本上你需要什么功能一查就能找到, MSDN里也都有示例. 只是为了体验一下新的编程习惯, 所以还没有嵌入NativeC++的代码.

总结一下新的东西:

1. CLR里的指针不叫指针, 叫"句柄", 使用gcnew而不是new创建. 如:

  1. DirectoryInfo^ disk = gcnew DirectoryInfo(drive->Name);

2. 句柄相当于一个智能指针, 所以我们不用太关心它们什么时候释放(.Net的公有特征)

3. 对象的"属性"不是通过get/set方法来读写的, 而是通过访问器来的(跟C#一样)

4. for each很好用.....

 for each(FileInfo^ file in curDir->GetFiles())
                 {
                     ListViewItem^ item = gcnew ListViewItem(file->Name, 3);
                     item->SubItems->Add(Convert::ToString(file->Length));
 this->listViewFile->Items->Add(item);
                 }

5. 多了个委托(还是跟C#一个样)

6. class在定义的时候多了个ref关键字

7. 发现static_cast用来做类型转换没啥用, 因为所有的对象都是Object的子类(囧)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏進无尽的文章

面向对象设计中类的关系

所谓的设计正是采用恰当的方式组织类关。因此谈设计我认为首先要从类之间的关系开始说起.

39850
来自专栏大神带我来搬砖

锱铢必较:程序员生存指南——正则表达式中使用断言

18530
来自专栏开发技术

排序之直接插入排序

本篇博客是在伍迷兄的博客基础上进行的,其博客地址点击就可以进去,里面好博客很多,我的排序算法都来自于此;一些数据结构方面的概念我就不多阐述了,伍迷兄的博客中都...

42410
来自专栏牛客网

深信服一面C++

Linux中创建共享内存的方式?共享内存中起始地址是不是按照页的大小对齐?创建共享内存的时候物理页一定分配吗?惰性空间分配的实现方式?

17220
来自专栏ACM算法日常

唯快不破的01序列——位运算初识

众所周知,计算机的运算使用的就是二进制,它会把十进制的数转化为二进制,然后进行二进制运算,最后再转回十进制展现给我们。而位运算指的是:由于数字在计算机里...

16430
来自专栏章鱼的慢慢技术路

计蒜客2018 蓝桥杯省赛 B 组模拟赛(一)

38330
来自专栏noteless

设计模式与设计原则简介(一)

对于软件开发人员, 在软件开发过程中, 面临的一般问题的解决方案就是设计模式(准确的说是OOP中)

8720
来自专栏非著名程序员

七夕节,程序员特有的表白方式!

以上这首告白书,来自于网络,我只是找到了这首程序员的告白诗,最早的时间出现在 2009 年 1 月 5 日,不知道作者是谁。(侵删)

36910
来自专栏阿杜的世界

《重构》阅读笔记-代码的坏味道

开发者必须通过实践培养自己的经验和直觉,培养出自己的判断力:学会判断一个类内有多少个实例变量算是太大、学会判断一个函数内有多少行代码才算太长。

8020
来自专栏C/C++基础

面向对象设计的五项基本原则

面向对象设计(OOD)是面向对象编程(OOP)必不可少的一个环节,只有好的设计,才能保障程序的质量。面向对象设计的主要任务就是类的设计,不少面向对象(OO)的先...

8220

扫码关注云+社区

领取腾讯云代金券