MFC比C#差在哪?

时间:2022-11-07 00:21:56
好多人说MFC不好,到底哪不好呢?
C# 可以完全替代MFC?(不要和我说一个是语言,一个是C++库!)
对于底层操作,驱动操作,安全类软件,C#能代替MFC?

32 个解决方案

#1


开发效率不行。

不是所有程序都是   "底层操作,驱动操作,安全类软件"

#2


编程语言没有好坏之分的
C#语法简单,入门容易,开发快,但是需要.net运行库,对底层的支持不好
C++各种指针,很容易造成指针越界,面向过程,编程复杂,但是可以做驱动程序,而且只需要copy几个dll就能运行

#3


说没有好坏之分可能不太准确
但是能坚持到现在还在被广泛使用的编程语言,都是有各自的可取之处,并且适用于不同的用途的
那些实在太烂的,早就被淘汰了

#4


所有开发语言归根到底不都是转化为01么,主要应用场景不一样的东西,有啥好比的

#5


好与差,不同的角度有不同的评价,无意义

#6


引用 5 楼 FoxDave 的回复:
好与差,不同的角度有不同的评价,无意义

楼上均为 正解。

#7


举个梨子, 
你开发一个 桌面应用, 敢问 哪个速度块,我指的开发效率,

当然mfc 做一些对性能要求非常高的 当然可以选用, 话又说回来,C#一样的也可以做到,看什么人而已,
这比较的毫无意义, 好多 多大数据采集的 依然用mfc,

#8


有人说可乐不好,橙汁好,到底哪里不好呢

个人口味不一样
价格不一样

有人就是喜欢
有人就是图便宜

说不上到底哪个更好

#9


这根本不具有你说的那种比较性。

如果你有本事拿 mfc 中的类库与.net framework中的类库中包含的功能,拿出来逐一比较,才有实践意义。

你所说的什么“底层操作,驱动操作,安全类软件”这证明你是连 mfc 也不懂了。这些拿c、汇编来说还差不多。

拿mfc这样一个类库,却说不出这个类库中包含哪些程序库,你这么做有什么意义?

#10


说什么“底层操作,驱动操作,安全类软件”是基于 mfc 上面来开发,这是会令人“笑掉大牙”的。让人彻底怀疑你什么时候见过驱动程序、ring-0级程序、什么“底层操作”代码?!

那些开发肯定要绕开mfc类库的。只有一点点“用户态下的界面程序”才会用到mfc。

你急于拿这个来说事儿,已经说明了问题。不了解的东西、只凭着一点兴趣爱好去道听途说的东西,当作你的精神支柱了,你什么时候才能不去整天纠结这些,赶紧真正搞点正规的开发、拿出点产品来呢?

#11


引用 楼主 fewrer 的回复:
不要和我说一个是语言,一个是C++库!)


如果你连语言跟类库都分不清楚,你还有什么可能去把 mfc 跟 c# 做个对比?

#12


话说,既然楼主自己都知道一个是语言,一个是类库
那么你为什么不拿C#和C++比
不拿.net和MFC比

而非要拿C#和MFC比??

好比飞机是烧航空煤油的,汽车是烧汽油的
你不比较飞机和汽车哪个好,也不比较煤油和汽油哪个好
而去比飞机和汽油哪个好,这不是可笑吗!

#13


开发效率,入门难度都不同,C#要快太多了

#14


飞机能代替汽车吗?答案是不能
煤油能代替汽油吗?答案也是不能

飞机能代替汽油吗?这根本是个无意义的问题

#15


楼上你们为什么要跟楼主较真,人家就是问问用winform开发桌面程序和用MFC开发桌面程序之间的差异,何必要咬文嚼字

#16


底层驱动框架目前是WDF,以前是WDM,从来就没听说MFC写底层的,它只是应用层做UI而已

#17


引用 15 楼 u012071890 的回复:
楼上你们为什么要跟楼主较真,人家就是问问用winform开发桌面程序和用MFC开发桌面程序之间的差异,何必要咬文嚼字


你是看不懂楼主用 mfc 来开发“对于底层操作,驱动操作,安全类软件”。哪有什么 winform 开发桌面程序?

而且我们已经有许多年不考虑什么 winform 开发桌面程序了,早就是使用 wpf 开发各类图形编辑系统、动画系统了。

#18


我倒不觉得是“比较”的问题。mfc无可厚非,c++也无可厚非。

问题是基本概念受到了毒害,以为拿 mfc 是来“对于底层操作,驱动操作,安全类软件”进行开发的,这就是自己倒霉。要想搞这类底层开发,去学 mfc 有屁用啊?应该学习该学的那些windows驱动知识、windows内核数据结构知识、rong-0系统知识啊,应该了解c\汇编语言跟c++语言的区别啊。

搞这些开发,就去搞就好了。跟.net平台的广泛应用的开发任务根本就是无关。

问题是有些人干不了底层开发、也干不了高效率的应用系统开发,“悬在中间”不上不下。可难受了。

#19


C#根本取代不了MFC,你看下效率就知道了!!

#20


这里不是比较的问题,是根本拿来作为精神支柱来比较的东西连楼主自己也没有搞明白。

将 mfc 的理解成“底层操作,驱动操作,安全类软件”这是非常“吓人”的一个误解。咱们抛开这个 .net 论坛,就算是 c++ 论坛,也要搞清楚这个基本概念,才好真正去明白如何搞开发的。

#21


本来我以为有些人是不知道概念,所以“不小心”拿c#语言跟mfc类库去做比较,而不懂得mfc跟.net framework类库做比较才是正常的思维方式。

现在我知道了,有些人就是硬要故意这样比较的,以为说“c#”就不存在.net framework框架库了,就无需拿 mfc 类库跟.net framwork做比较了。这可真是自欺欺人的。

引用 19 楼 kmsch 的回复:
C#根本取代不了MFC,你看下效率就知道了!!

#22


MFC比C#差在哪?
MFC比C#差在哪?
神马底层、神马驱动
神马谁取代不了谁,神马效率
都是浮云~

#23


神马底层、神马驱动
神马谁取代不了谁,神马效率
都是浮云~

MFC比C#差在哪?
MFC比C#差在哪?

#24


引用 21 楼 sp1234 的回复:
本来我以为有些人是不知道概念,所以“不小心”拿c#语言跟mfc类库去做比较,而不懂得mfc跟.net framework类库做比较才是正常的思维方式。

现在我知道了,有些人就是硬要故意这样比较的,以为说“c#”就不存在.net framework框架库了,就无需拿 mfc 类库跟.net framwork做比较了。这可真是自欺欺人的。

Quote: 引用 19 楼 kmsch 的回复:

C#根本取代不了MFC,你看下效率就知道了!!


用C+DDK写驱动,用C++写界面,能完美的融合,那么C#和DDK能完美隔合吗?
况且学MFC,相当于学了大部分API函数,API调用内核功能?学API会不会更有利于内核理解?

#25


其实C和C++都可以写驱动的,但是说MFC写驱动就很别扭了!

#26


引用 25 楼 qq1134993111 的回复:
其实C和C++都可以写驱动的,但是说MFC写驱动就很别扭了!


我知道都可以写驱动,但MFC是C++库,能完美融合呀?我不能直接说C++,C++的库太多,也可以是QT。

#27


引用 26 楼 fewrer 的回复:
Quote: 引用 25 楼 qq1134993111 的回复:

其实C和C++都可以写驱动的,但是说MFC写驱动就很别扭了!


我知道都可以写驱动,但MFC是C++库,能完美融合呀?我不能直接说C++,C++的库太多,也可以是QT。


驱动层基本上不能用应用层的api,MFC有windows api 的封装,也属于ring3层的了,所以不能用了

#28


引用 27 楼 qq1134993111 的回复:
Quote: 引用 26 楼 fewrer 的回复:

Quote: 引用 25 楼 qq1134993111 的回复:

其实C和C++都可以写驱动的,但是说MFC写驱动就很别扭了!


我知道都可以写驱动,但MFC是C++库,能完美融合呀?我不能直接说C++,C++的库太多,也可以是QT。


驱动层基本上不能用应用层的api,MFC有windows api 的封装,也属于ring3层的了,所以不能用了


嗯嗯,API底层也是用驱动实现的,大多数书集都是和API做对比吧?而且像OD这样的工具可以截断API?会不会更有利于分析软件呢?

#29


能解决问题,就行,语言、库什么的,都是工具而已。

#30


就算是底层开发,也可以用dll 连win api 然后再在c#上面封一层。
mfc基本不会用了。

#31


你这个问题 问的不准确啊,MFC是基于C++的图形界面库,C#是编程语言,应该用C++和C#比,而不是MFC和C#比,

如果单说MFC做界面确实不如C#做界面简单方便,

如果C++和C#比,C#却不如C++强大了。

#32


草,神马是驱动

#1


开发效率不行。

不是所有程序都是   "底层操作,驱动操作,安全类软件"

#2


编程语言没有好坏之分的
C#语法简单,入门容易,开发快,但是需要.net运行库,对底层的支持不好
C++各种指针,很容易造成指针越界,面向过程,编程复杂,但是可以做驱动程序,而且只需要copy几个dll就能运行

#3


说没有好坏之分可能不太准确
但是能坚持到现在还在被广泛使用的编程语言,都是有各自的可取之处,并且适用于不同的用途的
那些实在太烂的,早就被淘汰了

#4


所有开发语言归根到底不都是转化为01么,主要应用场景不一样的东西,有啥好比的

#5


好与差,不同的角度有不同的评价,无意义

#6


引用 5 楼 FoxDave 的回复:
好与差,不同的角度有不同的评价,无意义

楼上均为 正解。

#7


举个梨子, 
你开发一个 桌面应用, 敢问 哪个速度块,我指的开发效率,

当然mfc 做一些对性能要求非常高的 当然可以选用, 话又说回来,C#一样的也可以做到,看什么人而已,
这比较的毫无意义, 好多 多大数据采集的 依然用mfc,

#8


有人说可乐不好,橙汁好,到底哪里不好呢

个人口味不一样
价格不一样

有人就是喜欢
有人就是图便宜

说不上到底哪个更好

#9


这根本不具有你说的那种比较性。

如果你有本事拿 mfc 中的类库与.net framework中的类库中包含的功能,拿出来逐一比较,才有实践意义。

你所说的什么“底层操作,驱动操作,安全类软件”这证明你是连 mfc 也不懂了。这些拿c、汇编来说还差不多。

拿mfc这样一个类库,却说不出这个类库中包含哪些程序库,你这么做有什么意义?

#10


说什么“底层操作,驱动操作,安全类软件”是基于 mfc 上面来开发,这是会令人“笑掉大牙”的。让人彻底怀疑你什么时候见过驱动程序、ring-0级程序、什么“底层操作”代码?!

那些开发肯定要绕开mfc类库的。只有一点点“用户态下的界面程序”才会用到mfc。

你急于拿这个来说事儿,已经说明了问题。不了解的东西、只凭着一点兴趣爱好去道听途说的东西,当作你的精神支柱了,你什么时候才能不去整天纠结这些,赶紧真正搞点正规的开发、拿出点产品来呢?

#11


引用 楼主 fewrer 的回复:
不要和我说一个是语言,一个是C++库!)


如果你连语言跟类库都分不清楚,你还有什么可能去把 mfc 跟 c# 做个对比?

#12


话说,既然楼主自己都知道一个是语言,一个是类库
那么你为什么不拿C#和C++比
不拿.net和MFC比

而非要拿C#和MFC比??

好比飞机是烧航空煤油的,汽车是烧汽油的
你不比较飞机和汽车哪个好,也不比较煤油和汽油哪个好
而去比飞机和汽油哪个好,这不是可笑吗!

#13


开发效率,入门难度都不同,C#要快太多了

#14


飞机能代替汽车吗?答案是不能
煤油能代替汽油吗?答案也是不能

飞机能代替汽油吗?这根本是个无意义的问题

#15


楼上你们为什么要跟楼主较真,人家就是问问用winform开发桌面程序和用MFC开发桌面程序之间的差异,何必要咬文嚼字

#16


底层驱动框架目前是WDF,以前是WDM,从来就没听说MFC写底层的,它只是应用层做UI而已

#17


引用 15 楼 u012071890 的回复:
楼上你们为什么要跟楼主较真,人家就是问问用winform开发桌面程序和用MFC开发桌面程序之间的差异,何必要咬文嚼字


你是看不懂楼主用 mfc 来开发“对于底层操作,驱动操作,安全类软件”。哪有什么 winform 开发桌面程序?

而且我们已经有许多年不考虑什么 winform 开发桌面程序了,早就是使用 wpf 开发各类图形编辑系统、动画系统了。

#18


我倒不觉得是“比较”的问题。mfc无可厚非,c++也无可厚非。

问题是基本概念受到了毒害,以为拿 mfc 是来“对于底层操作,驱动操作,安全类软件”进行开发的,这就是自己倒霉。要想搞这类底层开发,去学 mfc 有屁用啊?应该学习该学的那些windows驱动知识、windows内核数据结构知识、rong-0系统知识啊,应该了解c\汇编语言跟c++语言的区别啊。

搞这些开发,就去搞就好了。跟.net平台的广泛应用的开发任务根本就是无关。

问题是有些人干不了底层开发、也干不了高效率的应用系统开发,“悬在中间”不上不下。可难受了。

#19


C#根本取代不了MFC,你看下效率就知道了!!

#20


这里不是比较的问题,是根本拿来作为精神支柱来比较的东西连楼主自己也没有搞明白。

将 mfc 的理解成“底层操作,驱动操作,安全类软件”这是非常“吓人”的一个误解。咱们抛开这个 .net 论坛,就算是 c++ 论坛,也要搞清楚这个基本概念,才好真正去明白如何搞开发的。

#21


本来我以为有些人是不知道概念,所以“不小心”拿c#语言跟mfc类库去做比较,而不懂得mfc跟.net framework类库做比较才是正常的思维方式。

现在我知道了,有些人就是硬要故意这样比较的,以为说“c#”就不存在.net framework框架库了,就无需拿 mfc 类库跟.net framwork做比较了。这可真是自欺欺人的。

引用 19 楼 kmsch 的回复:
C#根本取代不了MFC,你看下效率就知道了!!

#22


MFC比C#差在哪?
MFC比C#差在哪?
神马底层、神马驱动
神马谁取代不了谁,神马效率
都是浮云~

#23


神马底层、神马驱动
神马谁取代不了谁,神马效率
都是浮云~

MFC比C#差在哪?
MFC比C#差在哪?

#24


引用 21 楼 sp1234 的回复:
本来我以为有些人是不知道概念,所以“不小心”拿c#语言跟mfc类库去做比较,而不懂得mfc跟.net framework类库做比较才是正常的思维方式。

现在我知道了,有些人就是硬要故意这样比较的,以为说“c#”就不存在.net framework框架库了,就无需拿 mfc 类库跟.net framwork做比较了。这可真是自欺欺人的。

Quote: 引用 19 楼 kmsch 的回复:

C#根本取代不了MFC,你看下效率就知道了!!


用C+DDK写驱动,用C++写界面,能完美的融合,那么C#和DDK能完美隔合吗?
况且学MFC,相当于学了大部分API函数,API调用内核功能?学API会不会更有利于内核理解?

#25


其实C和C++都可以写驱动的,但是说MFC写驱动就很别扭了!

#26


引用 25 楼 qq1134993111 的回复:
其实C和C++都可以写驱动的,但是说MFC写驱动就很别扭了!


我知道都可以写驱动,但MFC是C++库,能完美融合呀?我不能直接说C++,C++的库太多,也可以是QT。

#27


引用 26 楼 fewrer 的回复:
Quote: 引用 25 楼 qq1134993111 的回复:

其实C和C++都可以写驱动的,但是说MFC写驱动就很别扭了!


我知道都可以写驱动,但MFC是C++库,能完美融合呀?我不能直接说C++,C++的库太多,也可以是QT。


驱动层基本上不能用应用层的api,MFC有windows api 的封装,也属于ring3层的了,所以不能用了

#28


引用 27 楼 qq1134993111 的回复:
Quote: 引用 26 楼 fewrer 的回复:

Quote: 引用 25 楼 qq1134993111 的回复:

其实C和C++都可以写驱动的,但是说MFC写驱动就很别扭了!


我知道都可以写驱动,但MFC是C++库,能完美融合呀?我不能直接说C++,C++的库太多,也可以是QT。


驱动层基本上不能用应用层的api,MFC有windows api 的封装,也属于ring3层的了,所以不能用了


嗯嗯,API底层也是用驱动实现的,大多数书集都是和API做对比吧?而且像OD这样的工具可以截断API?会不会更有利于分析软件呢?

#29


能解决问题,就行,语言、库什么的,都是工具而已。

#30


就算是底层开发,也可以用dll 连win api 然后再在c#上面封一层。
mfc基本不会用了。

#31


你这个问题 问的不准确啊,MFC是基于C++的图形界面库,C#是编程语言,应该用C++和C#比,而不是MFC和C#比,

如果单说MFC做界面确实不如C#做界面简单方便,

如果C++和C#比,C#却不如C++强大了。

#32


草,神马是驱动