首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对各种 MFC\ATL 类的跨平台支持

MFC(Microsoft Foundation Classes)和ATL(Active Template Library)是微软开发的两种C++库,用于简化Windows应用程序的开发。它们提供了一系列的类和函数,使开发人员能够更轻松地创建图形用户界面(GUI)应用程序。

MFC是一个基于面向对象的框架,提供了许多用于创建Windows应用程序的类和功能。它包含了一些常用的控件(如按钮、文本框、列表框等),以及处理窗口消息、事件处理、资源管理等功能。MFC还提供了一套强大的文档/视图架构,使开发人员能够更方便地处理数据和用户界面之间的交互。

ATL是一个轻量级的模板库,旨在提供高效的COM(Component Object Model)组件开发。它提供了一些模板类和宏,用于生成高性能的COM组件。ATL还提供了一些用于处理字符串、集合、文件操作等常用功能的类和函数。

对于MFC和ATL类的跨平台支持,需要使用一些额外的工具和技术来实现。以下是一些常用的方法:

  1. 使用跨平台的C++框架:可以选择使用一些跨平台的C++框架,如Qt、wxWidgets等。这些框架提供了自己的类库和工具,可以在不同的操作系统上编写和运行MFC和ATL类的代码。
  2. 使用跨平台的开发工具:可以使用一些跨平台的集成开发环境(IDE),如Visual Studio Code、Eclipse等。这些工具支持多种编程语言和平台,可以方便地进行跨平台开发。
  3. 使用虚拟化技术:可以使用虚拟化技术,如虚拟机或容器,来创建和管理不同操作系统的开发环境。通过在虚拟机或容器中安装相应的开发工具和库,可以实现在不同平台上编写和测试MFC和ATL类的代码。
  4. 使用云计算平台:可以将开发环境部署在云计算平台上,通过远程访问来进行开发和测试。云计算平台提供了弹性的计算资源和灵活的网络配置,可以方便地进行跨平台开发。

总结起来,实现MFC和ATL类的跨平台支持需要选择合适的跨平台框架或工具,并结合虚拟化技术或云计算平台来创建和管理跨平台的开发环境。这样可以在不同的操作系统上编写和测试MFC和ATL类的代码,实现跨平台的应用程序开发。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ATL CLR MFC Win32 常规 区别

前段时间,帮人改了个项目,里面明明感觉是MFC,但是却调用C#函数,用都是gcnew指针,凭借着C#熟悉,一点一点实验,终于帮人把程序改好了,但是却不知道到底是什么东西,C#和MFC混合编程...---- 文章1 ATL用于编写COM程序,CLR是.NET公共语言运行库,MFC是指MFC库,MFC程序是用这些库做出程序,WIN32常规就是不用 MFC,使用API函数编程序。...MFCATL和CLR是VC2005内置3大库,涵盖了windows各种开发方法和开发应用。当然关于C++开发库不止这3个,不过这3个是微 软推荐。...总的来说,这是一个垂老库,微软在10年以来,除了MFC进行修修补补以外,没有进行大改进或者更新。如果你问MFC还会活多 久?恩,这是个问题。...MFC是微软基本类库,用于使用Visual C++开发环境创建本地应用程序。顾名思义,CLR具有平台语言特性,各种语言都可以使用CLR开发.NET平台上应用程序。

1.4K30

聊聊移动端平台开发各种技术

介绍 最近出现 React Native 再次让平台移动端开发这个话题火起来了,曾经大家以为在手机上可以像桌面那样通过 Web 技术来实现平台开发,却大多因为性能或功能问题而放弃,不得不针对不同平台开发多个版本...但这并没有阻止人们平台开发技术探索,毕竟谁不想降低开发成本,一次编写就处处运行呢?...C++ C++ 是最常见选择,因为目前 Android、iOS 和 Windows Phone 都提供了 C++ 开发支持,它通常有三种做法: 只用 C++ 实现非界面部分,这是官方比较推崇方案...虚拟机流 除了编译为不同平台二进制文件,还有另一种常见做法是通过虚拟机来支持平台运行,比如 JavaScript和 Lua 都是天生内嵌语言,所以在这个流派中很多方案都使用了这两个语言。...游戏引擎中脚本 游戏引擎大多都能平台,为了提升开发效率,不少引擎还内嵌了脚本支持,比如: Ejecta,它实现了 Canvas 及 Audio API,可以开发简单游戏,但目前还不支持 Android

2.2K50

聊聊移动端平台开发各种技术

但这并没有阻止人们平台开发技术探索,毕竟谁不想降低开发成本,一次编写就处处运行呢?...C++ C++ 是最常见选择,因为目前 Android、iOS 和 Windows Phone 都提供了 C++ 开发支持,它通常有三种做法: 只用 C++ 实现非界面部分,这是官方比较推崇方案...另一个类似的是 Silver,不过目前没正式发布,它不仅支持 Swift,还支持 C# 和自创 Oxygene 语言(看起来像 Pascal),在界面方面它还有个平台非 UI 库 Sugar,然而目前...虚拟机流 除了编译为不同平台二进制文件,还有另一种常见做法是通过虚拟机来支持平台运行,比如 JavaScript和 Lua 都是天生内嵌语言,所以在这个流派中很多方案都使用了这两个语言。...游戏引擎中脚本 游戏引擎大多都能平台,为了提升开发效率,不少引擎还内嵌了脚本支持,比如: Ejecta,它实现了 Canvas 及 Audio API,可以开发简单游戏,但目前还不支持 Android

1.5K21

C++库大全

并且由于其平台强调,标准C++强调,是编写平台无关,现代C++开发者必备工具。但是Boost 中也有很多是实验性质东西,在实际开发中实用需要谨慎。...3) WxWindows 参考网站:http://www.wxwindows.org 平台GUI库。因为其层次极像MFC,所以有文章介绍从MFC到WxWindows代码移植以实现平台功能。...引擎中更底层系统库(如:Direct3D和OpenGL)全部使用细节进行了抽象,并提供了基于现实世界对象接口和其它。...2) ATL ATL(Active Template Library)是一组小巧、高效、灵活,这些为创建可互操作COM组件提供了基本设施。...Xerces : XML代码库,估计是除.Net FrameworkSystem.XML外最好使XML库了,对于C++程序员,如果需要完善XML Core Level3支持平台,免费XML

2.3K60

什么是QT?「建议收藏」

Qt是一个平台C++图形用户界面应用程序框架 Qt是面向对象框架,提供了一种称为 signals/slots 安全类型来实现各个元件 之间协同工作。 2....Qt是一个平台应用程序开发库 Qt 包括多达 250 个以上 C++ ,还替供基于模板 collections, serialization, file, I/O device, directory...基本上,Qt 同Windows 平台 MFC,OWL,VCL,ATL 是同类型东西。但是其平台性又是MFC等无法比拟。 什么是MFC?...mfc是什么   1、mfc是微软基础简称,是微软公司实现一个c++库,主要封装了大部分windows API函数,并且包含一个应用程序框架,以减少应用程序开发人员工作量。   ...MFC除了是一个库以外,还是一个框架,你应该试过,在vc++里新建一个MFC工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。

1.1K30

MFC和QT区别

MFC 微软基础库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供一个库(class libraries),以C++形式封装了Windows API...QT 是一个1991年由Qt Company开发平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。...Digia,2014年4月,平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口GDB调试支持,...基本上,Qt 同 X Window 上 Motif,Openwin,GTK 等图形界 面库和 Windows 平台 MFC,OWL,VCL,ATL 是同类型东西。...优良平台特性: Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital

1.7K51

C++著名程序库比较和学习经验

并且由于其平台强调,标准C++强调,是编写平台无关,现代C++开发者必备 工具。但是Boost中也有很多是实验性质东西,在实际开发中实用需要谨慎。...因为其层次极像MFC,所以有文章介绍从MFC到WxWindows代码移植以实现平台功能。通过多年开发也是一个日趋完善GUI库,支持同样不弱于前面两个库。并且是完全开放源代码。...作者从自己亲身开发经验中得出了一个理想GUI库应该是什么样子感受出发,从而开始了这个库开发。有兴趣可以尝试一下。 3.5、WTL 基于ATL一个库。...products/av/   AV3D是一个平台,高性能C++库。...12.2、ATL ATL(Active Template Library)是一组小巧、高效、灵活,这些为创建可互操作COM组件提供了基本设施。

26130

简述C和C++学习历程

既然模板理解了,STL,ATL这些,静态模板库,动态模板库,还难理解吗?就是一大堆,可以借此实现很多应用中需要,不需要程序员再自己写而已。 ok,STL都理解了,泛型开发还难吗?...所谓泛型开发,其实就是我做一个模板,来定义一套算法规则,但是呢,我希望这个算法规则,能进一步抽象,核心数据类型不要限死,我把各种数据套进去,都可以用,这样,仅算法这部分,我不需要重写了。...那么,一般说来,客户端是Windows系统,服务器是Linux,这些都是行业习惯,嵌入式不好说,各种平台都有,Palm,S60,Linux,WinCE,等等。要根据自己目标客户来定。...假如我们开发VC,并且使用C++,这个时候,才需要考虑学习MFC了,因为这是微软标准库,至少Windows平台下,它最权威,你看见没有,我们从学习开始,走了多少步,才走到MFC?...不过,为了传递各种类型参数,COM可谓是无所不用其极,它发明了智能指针,可以指向任何类型数据,同时,为了实现智能指针,它使用了大量C++泛型设计,看见没,C++基本功就起作用了,还用到了ATL.

63420

C和C加加学习过程总结,内有实用学习路线

既然模板理解了,STL,ATL这些,静态模板库,动态模板库,还难理解吗?就是一大堆,可以借此实现很多应用中需要,不需要程序员再自己写而已。 ok,STL都理解了,泛型开发还难吗?...所谓泛型开发,其实就是我做一个模板,来定义一套算法规则,但是呢,我希望这个算法规则,能进一步抽象,核心数据类型不要限死,我把各种数据套进去,都可以用,这样,仅算法这部分,我不需要重写了。...那么,一般说来,客户端是Windows系统,服务器是Linux,这些都是行业习惯,嵌入式不好说,各种平台都有,Palm,S60,Linux,WinCE,等等。要根据自己目标客户来定。...假如我们开发VC,并且使用C++,这个时候,才需要考虑学习MFC了,因为这是微软标准库,至少Windows平台下,它最权威,你看见没有,我们从学习开始,走了多少步,才走到MFC?...不过,为了传递各种类型参数,COM可谓是无所不用其极,它发明了智能指针,可以指向任何类型数据,同时,为了实现智能指针,它使用了大量C++泛型设计,看见没,C++基本功就起作用了,还用到了ATL.

1.2K61

atl创建avtive

第一、二个页面比较重要,主要对idl和继承产生影响。...字符串 atl字符串使用BSTR,C++封装中_b_str,通过copy方法传出字符串到BSTR。...连接点需要atl创建过程中,使用项目支持“连接点”和IPropertyNotifySInk。连接点主要为创建回调函数,类似wcf双工通信契约。创建成功后,控件本身会增加事件接口。...控件端事件实现可以通过,窗口中控件右键“接口实现”,选择实现接口和模块自动实现后连接点代码。如下: ? ? ? ? 10.c#调用过程中,项目obj需要手动删除,否则会有编译错误。...11.googleactivex支持需要下载安装插件。随着js和html5发展,现在已经很少看到activex在互联网中应用,处理一些安全级别比较高场景,比如银行安装插件。

1.3K20

OCX开发总结

01 OCX开发总结 首先,使用ocx意味着,网站只支持windows!! MFC ActiveX和ATL C++ ocx开发,有ATLMFC ActiveX两套框架。...二者比较,简单说,MFC封装程度高,故MFC使得你很快完成你工程并更快运行起来,但是牺牲了灵活性;ATL更接近COM核心,轻量级。 如果ocx需要界面的话,如监控控件需要显示视频流。...建议使用MFC ActiveX,可以像MFC Dialog项目那样写界面,尽管说MFC过时了,但C++写简单实用界面,还有其他更好选择?...如果很在意ocx控件大小的话,只能用ATL,因为MFC ActiveX是MFC项目——打入MFC库,不够轻量。...遇到棘手情况,使用VARIANT类型——union定义“万能类型”,当年在VB、VC、C#等扩平台调用时出现过问题,使用复杂,现在具体已经记不清了。

1.7K10

【技术创作101训练营】Qt也是一种选择

2014年4月,平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口GDB调试支持,集成了基于Clang...C/C++代码模块,并Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级图形用户界面所需所有功能。...基本上,Qt 同 X Window 上 Motif,Openwin,GTK 等图形界面库和 Windows 平台 MFC,OWL,VCL,ATL 是同类型东西。...为什么选择Qt 优良平台特性:Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS...用QT写程序,只要换个编译工具,就可以直接运行到Linux系统、安卓平台,嵌入式系统中。 3)简单,使用起来方便。 感谢大家聆听,希望能够各位有所帮助!

69900

以金山界面库(openkui)为例思考和分析界面库设计和实现——问题

顾名思义,它就是直接在父窗口中绘制各个部分,而不是通过子窗口形式将各种窗口组成成一个可以协同工作窗口。最最常见一个例子便是IE最最里层那个窗口,它通过其渲染引擎将网页内容绘制在窗口上。...现在我们确认了使用窗口控件方式。那我们再抛出第二个问题:使用什么框架?         使用WTL还是MFC?         我相信做windows开发同学,MFC很熟悉。...我刚毕业时候,也是看了遍侯捷《深入浅出MFC》才开始踏上windows开发之路。但是,之后一直耳闻MFC种种弊端,其中人们提到最多一点就是MFC框架复杂容余,编译出来文件相对较大。...我HTML不熟悉,我知识范围内不知道该如何解决这个问题。但是记得曾经做MFC时,在资源文件RC中,有个字符串表(string table),其中保存是多个字符串键值。...这也是种思路,当然HTML可能不支持这种形式。如此,HTML已经不能满足我们描述了。我们回到XML来。

64420

SillyRAT:一款支持平台多功能RAT

关于SillyRAT SillyRAT是一款功能强大平台RAT工具,该工具基于纯Python开发,并且引入了多种实用功能。...除此之外,广大研究人员还可以使用“generate”命令来使用pyinstaller模块编译实际Payload代码。因此,我们需要在特定平台上生成对应平台Payload文件。...编码; · 纯Python开发; · 平台特性(Windows、Linux和macOS); · 源代码文件中包含测试项目; · Python 3支持; · 隐蔽执行(即将上线); · 数据加密(即将上线...针对所有操作系统平台源文件都是一致,因此我们可以直接在其中一个平台上生成一个Payload,并将其用于其他平台设备上。...--source 编译版本则针对是不同操作系统平台

85030

谷歌云平台加入更多微软产品支持

根据今天发表在谷歌云平台博客上一篇文章称,谷歌还致力于在其云上支持Windows Server 2012和Windows Server 2012 R2,并且很快会公布更多信息。...加入该工具支持,用户将能把当前正在使用Windows Server及其运行应用,在不增加额外授权费支出前提下迁移至谷歌云平台上。...得到该支持需要客户许可应用必须是在微软软件保障协议覆盖范围内。...谷歌云服务微软软件支持得益于双方签订一份联合商业和技术协议。...亚马逊已经允许客户通过Microsoft License Mobility在其云平台上运行一些Windows Server变体版本(包括Server 2012 R2),以及各种微软企业级软件应用。

96170

vs2019 Com组件初探-简单COM编写以及实现语言调用

在COM构架下,人们可以开发出各种各样功能专一组件,然后将它们按照需要组合起来,构成复杂应用系统。...使用ATL能够快速地开发出高效、简洁代码(Effective and Slim code),同时COM组件开发提供最大限度代码自动生成以及可视化支持。...image.png 现在添加一个新ATL对象 右键ComTest 新建项->添加->新建项 image.png ComTest 新建 “ATL简单对象”并点击添加 image.png 设置短名称为...  输入后会出现 已成功   如果不成功尝试在管理员权限下去注册 image.png 3、通过 VBS 实现语言调用COM 编写vbs代码 ComTest.Temp为“ATL简单对象”设置“ProgID...”而Number为函数名 image.png   保存并运行 执行成功 image.png 注意事项:   vbs调用com必须为IDispatch 接口   vs2019 ATL 默认为 继承

2.2K30

VS中Dubug和Release详细区别

至于是否需要DLL支持,主要看你采用编译选项。如果是基于ATL,则Debug和Release版本DLL要求差不多。...如果采用编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。...Release不对源代码进行调试,不考虑MFC诊断宏,使用MFC Release库,编译时对应用程序速度进行优化,而Debug则正好相反,它允许源代码进行调试,可以定义和使用MFC 诊断宏,...采用MFC Debug库,速度没有优化。...Release:Release通常称为发布版本,是为用户使用,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户使用提供便利。

71610
领券