首页
学习
活动
专区
圈层
工具
发布

ATL CLR MFC Win32 常规 的区别

MFC封装的范围包括GUI,IO,数据库,网络编程等等方面。但是很多系统开发必须的api都没有封装,这样开发者一般都在MFC的基础上自己 处理与业务相关的任务。...事实上很多人用MFC只是利用其GUI部分的封装。这个库GUI处理的效率也并不是很高,有时候与UI处理相关的代码会占到整个项 目的一半甚至更多。...使用Visual Studio 2005 可以很方便地创建一个CLR与MFC混合编程的工程,在工程中,我们即可以使用MFC中的类,也可以使用CLR中的类。...3)为了使用CLR类库中的Console类,在程序的开始包含如下两行: #using using namespace System; //下列代码演示了如何使用CLR与MFC...CString mfcMsg; //MFC中的字符串类 mfcMsg = "第一个MFC与CLR混合编程的例子!"

2.3K30

CLR与JVM

● 两者都采用基于堆栈的操作 ● 两者都包括运行时级安全性 ● 两者都有异常处理方法 CLR和JVM之间的主要区别包括: ● CLR被设计为与语言无关,JVM被设计为特定于Java ● CLR最初只与...深入研究CLR与JVM的相似之处 CLR和JVM都是虚拟机,它们都执行与平台无关的操作,即执行已编译的源代码。...CLR与JVM高级功能 除了基本功能之外,还包括垃圾收集,运行时安全性和异常处理的方法。最后提到的一个相似之处是,它们都采用基于堆栈的操作,这是存储和检索操作数及其结果的最常用方法。...主要差异: 语言和平台兼容性 CLR和JVM之间的一个潜在差异(尽管可能影响它们的开发方式)JVM是专门用于Java的,而CLR是为了与语言无关而设计的。...搜索VM的名称可以发现,与已标记为8,628次的JVM相比,CLR已标记了3,250次。 在StackOverflow之外,还有微软和Oracle自己培养的广泛社区。

91830
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【MFC】MFC基础篇(1)

    补发:2021-11-13 ---- MFC基础篇 以C++类的形式对WINDOWS API进行封装。...MFC框架理论 关键类 CWinApp:MFC应用程序抽象,管理DocumentTemplate。 CFrameWnd: 框架窗口,负责创建应用主窗口,含标题栏,菜单栏,工具栏,状态栏等 。...窗口与窗口对象 关系: 每个窗口对象都包含一个窗口 窗口对象使用Create方法创建窗口,在Create方法个中将窗口对象与窗口绑定 窗口对象的与窗口的生命周期不同,并不同生共死。...void CContrlObjectDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 UpdateData();//同步控件与变量 CString...= m_tree.InsertItem(_T("Root")); //root的子节点 first_sub = m_tree.InsertItem(_T("First_Sub"), root); //与first

    3K30

    MFC 思考:MFC是否没落了

    MFC相对于如今众多林立的开发语言中算是比较老的了,但是至今MFC仍然还有很多人使用,就本人观点来看MFC相对于一些其他语言确实存在很多令人诟病的地方。...(1)MFC基于c/c++书写代码很多时候要比C#、VB、java代码要多,虽然这样确实比较灵活,但是对于当今高效率开发时代,书写更少代码实现更多功能是目前大势所趋 (2)MFC难学不易懂,MFC需要有...此外MFC模态与非模态步骤也相对复杂些,C#直接使用show和showdialog即可,易语言载入命令一个真假即可实现,MFC却不是这么简单,除此之外还有MFC消息映射机制、控件变量传递等相对于其他语言确实要难理解...当然还有很多地方MFC存在毛病,但不是一无是处,也有很多优点,不过就现在看来优点再多面对现在高效率开发时代也是很难走下去,个人建议想用MFC开发程序的人还是慎重考虑,能学其他语言就不要学MFC。...MFC现在一点用都没有了吗? 不是,历史上遗留下来一些MFC的源代码需要维护。可能偶尔会用几个开源项目,就像弹药不够的时候偶尔也拼一下刺刀。 MFC应该跟什么语言比较?

    1.2K10

    MFC原理第一讲.MFC的本质.以及手工编写MFC的程序

    MFC原理第一讲.MFC的本质.以及手工编写MFC的程序 PS: 这个博客属于复习知识.从头开始讲解....在写这篇博客之前.已经写了3篇MFC的本质了.不过掌握知识点太多.所以从简重新开始. 一丶MFC的本质是什么.   MFC的本质其实就是Win32程序的一种封装....总结:     CWinAPP 这个类就是与程序有关.与窗口无关.并且保存数据和动作的一个类.   CFrameWnd 这个类就是与窗口有关的一个类. 管理窗口的....与程序有关.与窗口无关.   CFrameWnd 里面的Create 这个其实就是创建窗口. 我们的CWinAPP里面需要创建CFramWnd 窗口类.并且保存窗口句柄....如果有兴趣.可以看看MFC源码.也可以看看我以前写过的MFC原理的博客.

    3.6K40

    MFC DLL编写MFC调用全面研究报告

    MFC DLL导出函数有两种方法,第一就是__declspec(dllexport),第2种就是def文件,全面研究报告结论,我们应该少用def文件,而应该用__declspec(dllexport)。...用法)调用成功 (2)win32 DLL导出函数用def填写,静态加载(用#pragama+__declspec(dllimport)用法)无法调用,动态加载(LoadLibrary)调用成功 (3)MFC...共享DLL只要在名前面加一个__declspec(dllexport),类方法不用加,静态加载调用成功 (4)MFC 共享DLL如果不在类名前面加了一个__declspec(dllexport),情况很复杂...dllexport)调用加__declspec(dllexport)的函数成功 (e)有构造函数和析构函数情况下,所有函数(含构造函数和析构函数)加__declspec(dllexport)会调用成功 (5)MFC...共享DLL只通过def文件导出函数,发现无论有无构造或者析构函数,调用或者本身都会出错 结论:MFC导出类有3种方法推荐,第一只要在名前面加一个__declspec(dllexport),第二在所有函数包含构造后析构函数加

    35410

    Nebula3 in CLR

    有用N3 + CLR做界面的冲动 新建一个CLR WinForm工程, 直接引入N3的头文件和库进行编译...........找了半天才发现原因 晕死, .Net和N3都有个System命名空间, 没法改Microsoft的东西, 只好把N3的System改成了NSystem 然后就是链接不过 一是__fastcall不被CLR...支持, 改成__cdecl (/Gd)重遍 二是Multi-threaded Debug (/MTd)跟/clr冲突, 改成Multi-threaded Debug DLL (/MDd) 终于链接过了....拿着关键字就去问google, 没想到MSDN论坛上还真有解决方法(感谢我的先驱们, 我成功是了站在你们的"尸体"上) 原因是N3的对象系统在ImplementClass时定义了一些静态对象, 如果直接用CLR...Thanks Sarita Bafna Visual C++ team 测试程序: // N3CLR.cpp : main project file.

    73830

    《C#图解教程》读书笔记之一:C#和.NET框架

    1.1 20世纪90年代末的Windows编程   这时大多数程序员使用VB、C或C++,一些C/C++程序员使用纯Win32API,但纯Win32API不是面向对象的,而且使用它的工作量很大,比MFC...大多数程序员在使用MFC(Microsoft Foundation Class,微软基础类库),MFC是面向对象的,但是它却不一致,并逐渐变得陈旧。...:安全、多平台、性能;   开发环境的目标:面向对象、一致的编程环境、使用行业标准进行通信、简化的部署等; 二、.NET时代来临 2002年,微软发布了.NET框架的第一个版本,.NET框架是一种比MFC...四、核心组件—CLR:一个不辞辛劳的清洁工   毫无疑问,.NET框架的核心组件是CLR(公共语言运行时),它在操作系统的顶层,负责管理程序的执行。 ?...六、本章思维导图 image.png 附件   思维导图(jpg、pdf与mmap源文件):http://pan.baidu.com/s/1jG5JRpG 作者:周旭龙 出处:http://www.cnblogs.com

    1.4K30

    Nebula3 in CLR

    有用N3 + CLR做界面的冲动 新建一个CLR WinForm工程, 直接引入N3的头文件和库进行编译...........找了半天才发现原因 晕死, .Net和N3都有个System命名空间, 没法改Microsoft的东西, 只好把N3的System改成了NSystem 然后就是链接不过 一是__fastcall不被CLR...支持, 改成__cdecl (/Gd)重遍 二是Multi-threaded Debug (/MTd)跟/clr冲突, 改成Multi-threaded Debug DLL (/MDd) 终于链接过了....拿着关键字就去问google, 没想到MSDN论坛上还真有解决方法(感谢我的先驱们, 我成功是了站在你们的"尸体"上) 原因是N3的对象系统在ImplementClass时定义了一些静态对象, 如果直接用CLR...Thanks Sarita Bafna Visual C++ team 测试程序: // N3CLR.cpp : main project file.

    70430
    领券