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

学术指导老师

学术指导老师二维码

微信号:Xs74101122




月期刊平台服务过的文章录用时间为1-3个月,依据20年经验,经月期刊专家预审通过后的文章,投稿通过率100%以上!
  • SCI修回需要将上次的文件删除吗

    2024-05-14
    SCI修回需要将上次的文件删除吗 ? 通常是不需要删除上次提交的文件 。sci期刊发表论文过程涉及多个阶段,包括投稿、审稿和修回等。 当论文被审稿人提出修改意见后,作者需要根据审稿人意见和建议对论文进行相应的修改。修回时,作者需要提交一个包含修改内容的版本,
  • 一文了解固体力学领域sci期刊

    2024-05-14
    sci期刊审核是较为严格的,想要论文投稿sci期刊,一定要确保论文方向和水平符合sci期刊要求。今天可让你 一文了解固体力学领域sci期刊 ,助你选择到合适的期刊投稿。 1、 International Journal of Plasticity 《国际塑性杂志》 是一本专注于工程机械领域的英文学术期
  • 自费出书的流程和费用

    2024-05-14
    初次自费出书之前,为了确保快速完成书籍出版,作者首先要了解 自费出书的流程和费用 ,以确保符合自费出书的条件。下面一起看看自费出书流程,以及包括哪些费用。 1、自费出书的流程大揭秘 第一步:准备完成的出书稿件 想要出书,首先作者要准备好完整的书稿,并进行
  • 2024医学方面的学术会议时间安排

    2024-05-14
    在医学领域中,无论你是医学院学生,还是就职人员,不定期的参加医学方面的学术会议,可提升个人技能,存进科学发展和加强学术交流,增长见识、开拓视野,以及对于职业发展和学术声誉提升非常有益。以下是为大家介绍的部分 2024医学方面的学术会议时间安排 ,供大家参
  • 慎入:医学界十大水刊

    2024-05-13
    水刊指的是哪些发文量大、审稿速度快、接受率较高的期刊。不同专业领域中都有水刊,医学领域也不例外。这些期刊可能在学术界影响力和认可度不如顶级期刊和核心期刊,但并不是绝对的,为预防影响论文发表医学期刊,慎入:医学界十大水刊,供大家参考: 1、Medicine(医
  • 科研热点!华南师大文学:手抄毕业论文,你怎么看?

    2024-04-26
    华南师范大学文学院要求学生手抄毕业论文的做法引发了广泛的讨论和争议。院方表示,这一做法是为了考核师范生的书写能力。然而,这一要求引起了学生的不满,他们认为这种做法十分不合理。据报道,这项规定从去年开始就有学生向学院领导和老师反映,希望能调整或取消手
  • 无机材料领域录用快的sci期刊

    2024-04-24
    录用快的sci期刊是有前提条件的,首先作者要确保论文方向、创新性和水平符合sci期刊要求,否则很难被目标sci期刊录用,毕竟sci期刊对论文要求较高。以下是为大家推荐的无机材料领域录用快的sci期刊。 1、 GLASS AND CERAMICS(玻璃和陶瓷) 中科院:4区,容易,较慢,6-
  • 5分左右的内分泌sci期刊

    2024-04-24
    这里所说的5分是目标sci期刊的影响因子分值,影响因子是选择sci期刊的标准之一,可做出参考,然后综合各种因素选择符合的sci期刊投稿。以下是为大家推荐的 5分左右的内分泌sci期刊 ,供大家参考: 1、 Frontiers in Endocrinology (2区,14 Weeks) 是一本权威的同行
  • 脱发人数超2.5亿!Science期刊爆料:缺这种维生素!

    2024-04-24
    震撼!脱发大军突破2.5亿大关!你还在为头顶的尴尬发愁吗?别怕,最新科学研究告诉我们,脱发的人最容易缺乏的,就是这种神奇的维生素! 2024年3月8日,美国霍华德休斯医学研究中心的研究人员在 Science期刊上发表了一篇题为 Vitamin A resolves lineage plasticity to
  • Electronics期刊几区

    2024-04-24
    Electronics期刊几区 ? 中科院:3区 ,是一本开放获取的学术期刊,涵盖了广泛的电子工程领域,包括但不限于电路设计、通信技术、信号处理、嵌入式系统、半导体技术、控制系统等方面的研究。具体Electronics期刊怎么样?详情如下: Electronics期刊的论文在提交后会经
回到顶部