goback
月期刊咨询网
当前位置:首页>>微电子应用论文>>正文

MFC技术在Vega应用程序开发中的应用探析


所属栏目:微电子应用论文
发布时间:2011-02-23 16:50:51  更新时间:2023-06-02 16:24:30

已签订领域:化学工程/制药,医学题目:**作为抗癌剂***催化剂**取代苯丙***SCI四区 直击了解更多选题

已签订领域:环境科学-公共卫生题目:用**电***生物传感器**癌症**SCI二区 直击了解更多选题

已签订领域:环境科学-公共卫生题目:**氧化石墨烯纳米***材料的生物传感器***结肠癌生物**癌胚****SCI二区 直击了解更多选题

已签订领域:环境科学-公共卫生题目:聚合物纳米***a-硫辛酸***在神经炎症***应用***临床分析SCI二区 直击了解更多选题

已签订领域:计算机视觉/遥感/智能驾驶/汽车题目:**深度学习***高分辨率遥感***车辆检***SCI三区 直击了解更多选题

已签订领域:企业管理题目:社会交流***领导***倾向***方向SSCI,SCI三区,二区 直击了解更多选题

已签订领域:企业管理题目:**中小企业社交媒体****可持续绩效***因素探析SSCI,SCI三区,二区 直击了解更多选题

已签订领域:环境科学,公共卫生题目:利用硫氨酸***石墨烯纳米***电化学***传感器实现癌胚抗原***SCI二区 直击了解更多选题

已签订领域:环境科学,公共卫生题目:基于抗***纳米复合***高性能***早起癌症诊断***SCI二区 直击了解更多选题

已签订领域:经济,能源题目:***政治冲突****绿色金融、金融**、气***化***SCI四区 直击了解更多选题

已签订领域:经济,能源题目:冲***中能源不安全对***和环境***SCI四区 直击了解更多选题

已签订领域:教育题目:大学生***社交媒体***成绩影响***SSCI三区 直击了解更多选题

已签订领域:教育题目:巴基斯坦***学习实施的***的**SSCI二区 直击了解更多选题

已签订领域:教育题目:大学生对****下网络教学**思***SSCI二区 直击了解更多选题

已签订领域:教育题目:**教师和学生对影响***医疗**效果的****看法SSCI三区 直击了解更多选题

已签订领域:计量经济学题目:**货币、黄金、**和美国***的波动***相互依赖性:**数据的分析SSCI一区 直击了解更多选题

已签订领域:计量经济学题目:东南亚***内**趋同***中等收入**:新**的***SSCI二区 直击了解更多选题

已签订领域:建筑,历史题目:历史景点在***旅游发***中的***影响**(**研究:**历史***)SSCI,SCI一区 直击了解更多选题

已签订领域:领导力,管理题目:量化**领导对角色绩效***响:**冲突与工作自主性***作用SCI二区 直击了解更多选题

已签订领域:信息技术,教育题目:数字***环境对学生学习成绩***:游戏**和***现实在教育***作用SSCI四区 直击了解更多选题

已签订领域:信息技术,教育题目:信息技术***续决策之间的***:创新***识的**作用SSCI二区 直击了解更多选题

已签订领域:信息技术,教育题目:课程**对大学生***发展的影响:学习习惯和***的***作用SSCI一区 直击了解更多选题

已签订领域:信息技术,教育题目:信息技术***与可持续决策**:高等***学生认知***作用SSCI二区 直击了解更多选题

已签订领域:计算机,英语教学题目:英语****学**与人工智能****学习SCI三区 直击了解更多选题

已签订领域:计算机,音乐题目:评价**和音乐**对学生成绩***的影响SCI三区 直击了解更多选题

已签订领域:人体工程,心理学题目:基于预先处理模型***模式人体工程学***女生肌肉骨骼***预防行为*** 直击了解更多选题

已签订领域:人体工程,心理学题目:制定一个***人体工程学**,以识别、优先考虑***职业压力源的*** 直击了解更多选题

已签订领域:人体工程,心理学题目:多重工作**压力和工作***:***工效学方法的混合方法*** 直击了解更多选题

已签订领域:数学,经济题目:数学模型***结构调整和经济转型****研究 直击了解更多选题

已签订领域:数学,经济题目:***时间**数学模型在***媒体营销**中的应用*** 直击了解更多选题

已签订领域:数学,经济题目:***时间**模型在***物流运**能力***研究 直击了解更多选题

已签订领域:数学,经济题目:碳****经济的数学模型****研究 直击了解更多选题

已签订领域:农村经济题目:农****社区**发展***分**SCI四区 直击了解更多选题

已签订领域:农村经济题目:创业***对乡村****发展的****SCI四区 直击了解更多选题

已签订领域:农村经济题目:农村创业****的空间*****究SCI四区 直击了解更多选题

已签订领域:医学,电化学题目:纳米颗粒*****及其在癌症****和重金属*****检测中的应用SCI三区 直击了解更多选题

已签订领域:医学,电化学题目:基于*****前列腺癌药物氟****检测方法的*****腺癌治疗SCI二区 直击了解更多选题

已签订领域:医学,电化学题目:气海***********金纳米颗粒的新型****************粘土及其对胃癌********************抗癌SCI二区 直击了解更多选题

已签订领域:医学,电化学题目:基于抗***********GCE纳米***********材料的高性能*******************早期癌症SCI二区 直击了解更多选题

已签订领域:医学,电化学题目:用******电化学生物传感器*****癌症***************SCI二区 直击了解更多选题

已签订领域:医学,电化学题目:基于*****石墨烯纳米****材料的生物传感******用于测定结肠*****生物*****SCI二区 直击了解更多选题

已签订领域:医学,电化学题目:聚合***纳米复合电极*****疏辛酸电化学检测*********SCI二区 直击了解更多选题

已签订领域:医学,电化学题目:利用****酸/**糖**石墨烯纳米复合修饰的电化学*****SCI二区 直击了解更多选题

已签订领域:环境能源,绿色投资题目:环境能源、绿色投资、城市化和环境类方向SCI三区 直击了解更多选题

已签订领域:计算机,英语教学题目:英语教学**人工智能***习SCI 直击了解更多选题

已签订领域:计算机,音乐题目:评价**和音乐形式*学生***影响SCI三区 直击了解更多选题

已签订领域:经济,绿色投资题目:***能源效率***化之间的***SCI三区 直击了解更多选题

已签订领域:经济政策题目:***阐明**印度经济***的关系SCI三区 直击了解更多选题

已签订领域:经济,金融题目:***国家的能源***重***SCI 直击了解更多选题

已签订领域:经济,金融投资题目:***融新之间***直接投资***SCI三区 直击了解更多选题

已签订领域:经济,数学,统计学,管理学题目:非***想重限制下***袭评价***SSCI四区 直击了解更多选题

已签订领域:经济,数字,管理学题目:基干***生产系统***SSCI四区 直击了解更多选题

已签订领域:农业,土壤科学题目:不同***有机覆盖***养分循环SSCI 直击了解更多选题

已签订领域:电力与能源系统,管理题目:pv***氢定价的***随***型稀SSCI,SCI二区 直击了解更多选题

已签订领域:建筑规划,计算机题目:使用***因子分析法***可持续***SCI三区 直击了解更多选题

已签订领域:工程技术,纺织工程,材料科学题目:甘***淀粉酶的提取***退浆中的应用SCI四区 直击了解更多选题

已签订领域:渔业,鱼类生理学题目:饲料***镉毒性的交互***生长***病理学***SCI二区 直击了解更多选题

已签订领域:渔业,鱼类生理学题目:****鱼水源***起的生******SCI三区 直击了解更多选题

已签订领域:金融,环境经济题目:*****预算在能效、绿色***的作用SCI 直击了解更多选题

已签订领域:应用数学/计算物理题目:***非线性库***自相位调制***SCI三区 直击了解更多选题

已签订领域:计算机,医学检测题目:***COVID-19***力***算法***决策SCI三区 直击了解更多选题

已签订领域:计算机,物联网,智慧城市题目:基于***物联网****算法SCI三区 直击了解更多选题

摘要:简要介绍Vega应用程序的基本框架;重点分析基于MFC的Vega应用程序的基本框架和开发中所遇到的两个线程问题,并提供相应的解决方法。 论文网,期刊发表网,职称论文发表
  关键词:仿真;MFC;线程;Vega
  1Vega应用程序基本框架
  1.1Vega应用程序开发模式简介
  Vega是一种用于实时仿真及虚拟现实应用的高性能软件环境和工具,主要包括两个部分:一个是被称为LynX的图形用户界面的工具箱,另一个则是基于C语言的Vega函数库。LynX的主要功能是通过可视化操作建立起三维场景模型,并将其保存在一个应用定义文件(.ADF)中,而后应用程序就可以通过调用Vega的C语言函数库来对已建好的三维场景进行渲染驱动。
  1.2Vega应用程序基本框架分析
  Vega编程类似于C编程,包括完整的C语言应用程序接口,为软件开发人员提供最大程度的软件控制和灵活性。对于WindowsNT平台上的Vega应用,主要有三种类型:控制台程序、传统的Windows应用程序和基于MFC(MicrosoftFoundationClasses)的应用。但无论是哪一种应用,建立Vega应用程序都需要以下三个步骤:
  第一步,初始化Vega系统并创建共享内存等;
  第二步,通过ADF应用定义文件加载三维模型或是通过显式的函数调用来动态加载三维模型;
  第三步,通过调用配置函数设置完Vega系统后,就开始了Vega应用程序的主循环,主循环的作用是对三维视景进行渲染驱动。它主要分两步,即对于给定的帧速进行帧同步和对当前的显示帧进行必要的处理。
  以下是一个最基本的Vega应用程序框架:
  main(){
  vgInitSys();//初始化
  vgDefineSys(“.adf”文件);//定义
  vgConfigSys();//配置
  while(1){
  vgSyncFrame();//同步帧
  vgFrame();//帧内处理
  //应用程序特定代码}
  这是一个控制台的应用程序。但是Vega只是一个包含十几种不同模块的函数集,并没有窗口函数(虽然Vega函数库中提供了一些窗口和事件管理的函数,但这些函数在实际应用中还远远不够),它缺乏面向对象能力,不符合当前流行的软件设计思想,因此需要一个窗口系统来完成Vega实时仿真的程序设计。而如果在Windows平台上开发,具有良好图形用户界面的应用程序将更受到欢迎。对于基于窗口的应用程序来说,Vega系统通过提供一个窗口初始化函数调用来完成,即只要把上述的初始化函数vgInitSys()替换成vgInitWinSys()即可。该函数通过获得窗口句柄来初始化Vega的显示窗口。Vega窗口和Windows窗口如图1所示。
  2MFC技术在Vega应用程序设计中的应用
  2.1MFC技术与Vega应用程序的接口分析
  鉴于Vega函数是用C++语言编写以及在Windows平台上进行开发,所以就选择了VisualC++这种Windows环境下最好的C++编译器作为开发工具。VisualC++中的MFC类库已是一个相当成熟的类库,特别是其基于文档/视图结构的应用程序框架,已成为开发Windows应用程序的主流框架结构。该框架结构能够将程序中的数据和显示部分进行有效的隔离,并能将一个文档与多个视图进行对应。
  为便于开发出基于MFC的Vega应用程序,Vega通过继承MFC中的CView类而派生出一个子类zsVegaView。这个zsVegaView类提供了启动一个Vega线程最基本的功能,还以虚函数的形式定义了特定的应用程序要进行操作的通用接口,因此用户的应用程序只需从zsVegaView派生出新类并根据需要重载必要的虚函数即可。从设计模式的观点来看,它是采用了模板方法模式(TemplateMethod)。模板方法模式是一种类行为模式,其意图是定义一个操作算法的骨架,而将一些具体步骤延迟到子类中去,这是代码重用的一种基本技术。
  2.2基于MFC的Vega应用程序的线程分析
  通过采用模板方法可以将开发一个基于MFC应用程序的工作量减少到最低,这是Vega系统提供的方法,但由于MFC类库并不是一个支持多线程访问的类库,而派生的子类是通过在OnInitialUpdate()函数中调用基类的runVega()来启动Vega线程,并将派生类的指针作为参数传给新启动的子线程,这恰是问题的所在。由于源代码中的类空间和线程运行时的线程空间是可以相互交迭的,亦即不同的线程在运行时可以访问相同的类的实例(对象),而MFC类库本身设计时并未考虑到多线程访问,因此在线程间传递视图类CView(其子类对象也是一个CView对象)是不安全的。
  2.2.1在Vega线程中更新视图时访问保护异常错误的分析
  错误分析:在单文档多视图中,在Vega线程中改变文档数据后通过调用函数UpdateAllViews()来更新所有相应的视图时立即出现了访问保护异常的错误。这是因为用类CView的派生类来嵌入与Vega功能有关的功能代码对于CView的关联只使用了CView类的视图窗口的句柄,这种设计违反了软件设计的基本准则:高内聚,低耦合。
  解决方法:为了既能保持由模板方法设计带来的好处,又能达到高内聚、低耦合的目标,最好的方法就是进行切割分离,即将所有与Vega系统有关的数据和操作单独作为一个基类CVega来实现,并保持用户的扩展接口,然后只需从CVega类派生出新类并将视图窗口的句柄作为参数进行传递。由于Windows平台采用消息驱动机制,所以当Vega线程改变数据后可以利用视图窗口的句柄发送消息来通知各个视图窗口及时更新。
  2.2.2切换三维场景时地址访问保护错误的分析
  错误分析:Vega应用程序一般通过应用程序定义文件(.ADF)载入三维场景模型,而在实际开发的过程中,当打开应用程序时需要在不退出该应用程序的前提下需要进行三维场景切换,即载入新场景;但是,当Vega线程未退出时重新载入场景会失败,而在切换场景时让正在运行的线程自然终止而重新开启另一个线程则出现了一个地址访问保护的错误。该错误发生在Vega启动时的初始化系统函数vgInitWinSys()执行的过程中,原因是引用了无效的指针。vgInitWinSys()函数的作用主要是初始化Vega系统并创建共享内存等,同时在后台开启了一个Vega窗口子线程,该子线程根据传送的窗口句柄参数创建一个与该句柄对应的Windows窗口相同大小的Vega窗口,并将它覆盖在Windows窗口上,这样Vega系统的渲染窗口就可以嵌入到基于MFC的视图窗口上。该子线程的创建是必需的,但却无法终止它,这是因为它是Vega函数内部创建的,而线程又隶属于进程,只有进程结束了,所有的线程才全部退出。所以,即使创建它的父线程已“死”,它却还“活”着,但因此而保留了一些无用的参数如无效的指针等。而且,当第二个线程启动时函数vgInitWinSys()却不再启动新的子线程而是继续保留原来没“死”的窗口线程,这就导致了地址访问保护的错误。
  解决方法:就是创建一个单独的Vega进程。其设计思想是通过将同一个应用程序中的不同部分进行相互黑箱化,彼此之间仅通过定义好的接口进行访问,这就最大限度地减小各部分之间的相互影响。Windows不是一个实时操作系统,而是一个比较稳定的系统。由于虚拟仿真系统一般都是实时的,在它的视景驱动模块中将处理大量的实时仿真结果数据,所以必须保证该模块中的两个进程之间能快速有效地进行通信。
  在WindowsNT平台上,进程间通信的主要方式有:动态数据交换(DDE)、网络动态数据交换(NetDDE)、Windows套接字(WindowsSockets)、命名管道(NamedPipes)、内存映射文件(Memory-MappedFiles)、NetBIOS、远程过程调用(RPC)以及磁盘文件等。在视景驱动模块中,由于Vega进程和MFC主进程将运行在同一台PC上,所以主要应用于网络环境PC间的进程间通信的NetDDE、WindowsSockets、NetBIOS以及RPC都不适合,而通过磁盘文件来进行数据交换也不可行,这样就只能直接在内存中进行通信。因为在Ve



  • 论文中英文摘要怎么写?中英文摘要写作要求

    2025-04-03
    一篇高质量的论文,中英文摘要的撰写是非常重要的,否则会直接影响论文的发表。那么, 论文中英文摘要怎么写 ?今天在这里为大家讲讲 中英文摘要写作要求 ,希望能够帮助到大家。 1、中文摘要与关键词 推荐提供报道性摘要(结构式摘要),一般300-500字,分目的、方法
  • 评职称出书/选电子书号还是纸质书号

    2025-04-03
    有过评职称经验的作者,应该了解电子书号和纸质书号,电子书号,音像出版社出的书,有ISBN号,五CIP,国家网站可查询,是正规书号;纸质书号,有ISBN和CIP也是正规书号。至于 评职称出书/选 电子书号还是纸质书号 ?通常选择纸质书号的较多,但不同评审单位要求不同,
  • 评职称发表论文有什么要求?可以评职称的期刊目录

    2025-04-02
    工程、医生、会计和教师评副高和高级职称,通常需要发表论文、出版著作或申请专利,参评者可根据单位评审文件准备适合的学术成果。以下是为大家介绍的 评职称发表论文有什么要求 ?以及 可以评职称的期刊目录 ,供大家参考: 一、评职称发表论文有什么要求 1、论文质量
  • 教师评职称,通过率90%的北大核心期刊推荐

    2025-04-02
    无论你是中学、高中还是高校老师,职称晋升是必不可少的,为了能够帮助你快速完成职称晋升,今天在这里为教师们推荐部分通过率90%的北大核心期刊,供大家参考: 1、《思想政治教育研究》 复合影响因子 3.131,主要发表思想政治教育理论和实践相关文章,探索新时代思想
  • sci论文外审一般多长时间?三个月没消息正常

    2025-04-01
    sci论文审稿过程包括初审、外审和终审,其中外审周期较长。至于, sci论文外审一般多长时间 ? 并没有固定的时间,具体要看期刊的要求、论文的质量、审稿人的时间等等,通常sci论文外审的平均周期通常为2-4个月不等,甚至更久,具体以目标sci期刊外审时间为准。 1、sci
回到顶部