VC应用程序框架

delphimvcframework:DMVCFramework(简称VC)是Delphi中流行的,功能强大的Web解决方案框架。 支持RESTful和JSON-RPC API开发 目录 3.1.0-lithium的新增功能 3.0.0氢气中的新功能 2.1.3-lithium的新增功能 2.1.2-氦气中的新增功能 氢2.1.1的新功能 路线图 培训,咨询或定制开发服务 样品和文件 入门:5分钟指南 DelphiMVCFramework安装 样品控制器 如何创建dmvcframework服务器容器 RQL简介 由DMVCFramework实现的RQL 链接 什么是DelphiMVCFramework DMVCFramework是一个非常流行的Delphi框架,它为Delphi开发人员提供了易于使用,可伸缩,灵活的RESTful , JSON-RPC和ActiveRecord框架。 DMVCFramework是GitHub上最受欢迎的Delphi项目,可针对Windows(32位和64位)和Linux(64位)进行编译。 DMVCFramework服务可 立即下载

         VC应用程序框架提供的强大功能,为我们的开发提供了极大的方便,利用它可以很轻松地生成应用程序的框架.许多常用功能,例如文档的创建,文件的打开,保存等操作的大部分代码都由应用程序框架来完成.这些操作对于开发软件的用户而言是透明的。微软设计Visual C++的初衷是尽量向用户提供尽可能简单的接口,但是,正是因为应用框架的这一透明性,使VC的运行流程显得非常神秘,当涉及这些VC已经提供的功能模块的软件开发时,用户(特别是那些刚刚接触VC的)不知道什么时候该使用什么接口函数,想改变VC的一些默认操作时也不知道该从哪儿下手。
         我们可以通过VC自带的强大的Debug调试工具,跟踪应用程序框架代码,从而得出应用程序框架操作的部分流程.具体实现是:利用Visual C++应用程序生成器生成应用程序框架代码,启动Classwizard,在各个类中加入欲跟踪的接口函数,编辑接口函数,设置断点,再启动Debug进行单步跟踪调试.利用这一方法,我们还可以跟踪 VC提供的例子代码.在跟踪过程中,VC的核心代码是禁止跟踪调试的,我们只要跳过就行。
        以下是根据我自己看到的一些资料和对多文档应用程序的文档创建,文件的打开, 保存(另存为)操作的跟踪结果,单文档应用与多文档应用的操作流程基本相似,只是用CSingleDocTemplate类的同名函数来替代对 CMultiDocTemplate类同名函数的调用。

一.创建文档
ON_COMMAND(ID_FILE_NEW,CWinApp::OnFileNew)
入口:CWinApp::OnFileNew
CWinApp对OnFileNew的默认实现是调用:CdocManager::OnFileNew()
1.判断有无文档模板,无则函数返回;
2.判断是否有多个文档模板,如有则启动文档模板选择对话框,让用户选择一个模板后,返回模板指针.
3.由模板指针访问CMultiDocTemplate::OpenDocumentFile()
3.1 创建新文档对象
3.2 创建与新文档对象对应的子框架,构筑子框架,文档和视窗之间的关系
3.3 调用应用程序的OnNewDocument()
   a.调用CDocument::OnNewDocument()
      调用应用程序的DeleteContents();
   b.用户代码
3.4 调用InitialUpdateFrame()显示视窗
3.5 返回文档指针
4.返回

二.打开文档
ON_COMMAND(ID_FILE_OPEN,CWinApp::OnFileOpen)
入口:CWinApp::OnFileOpen
CWinApp对OnFileOpen的默认实现是调用:CDocManager::OnFileOpen()
1.弹出对话框让用户选择待打开的文件,返回该文件的全路径名称, 供下面函数调用时使用.
2.调用应用程序的OpenDocumentFile(LPCTSTR lpszFileName)
  2.1 用户代码
  2.2 调用CWinApp::OpenDocumentFile(lpszFileName),
        调用CDocManager::OpenDocumentFile
     a.判断有无该文件的打开文档对象,有则激活该窗口并返回
     b.调用CMultiDocTemplate::OpenDocumentFile()
       b.1 创建新的文档对象,创建新文档对象对应的子框架
       b.2 调用应用程序的OnOpenDocument()
         (1)调用CDocument::OnOpenDocument()
              .打开文件对象
              .调用应用程序的DeleteDontents();
              .建立与此文件对象相关联的CArchive对象
              .调用应用程序文档对象的Serialize()函数
              .关闭CArchive对象,文件对象
         (2)显示该文件窗口
       b.3 返回

三.文件保存
ON_COMMAND(ID_FILE_SAVE,CDocument::OnFileSave)
入口:CDocument::OnFileSave()
调用:CDocument::DoFileSave()
如果当前文档对应的文件名为空或者为只读文件,以NULL为参数调用CDocument::DoSave(NULL),否则,以当前文档对应的文件名为参数调用CDocument::DoSave(m_strPathName);

ON_COMMAND(ID_FILE_SAVEAS,CDocument::OnFileSaveAs)
入口:CDocument::OnFileSaveAs()
以NULL为参数直接调用CDocument::DoSave(NULL);
CDocument::DoSave(LPCTSTR lpszPathName,BOOL bReplace);
如果lpszPathName为NULL,
1.设定应用程序默认的文件名
2.打开通用文件保存对话框,由用户设定保存文件的名字,并返回该文件名
如果lpszPahtName不为NULL,则跳为以上两步,直接进入下一步
3.调用应用程序的OnSaveDocument()
  3.1.用户代码
  3.2.调用CDocument::OnSaveDocument()
     a.创建或打开文件对象
     b.建立相对应的CArchive对象
     c.调用应用程序文档对象的序列化函数Serialize()
     d.关闭文件对象,CArchive对象
     e.设置文件未修改标志
4.返回

第7篇-SAP MM模块-JIT应用实战解析,从计划协议到JIT供应的关键配置与流程 本文深入解析SAP MM模块中的JIT(Just In Time)供应模式,从计划协议到JIT供应的关键配置与流程。通过动态计划行管理、需求聚合与分解等核心功能,实现精确数量、时间和地点的物料供应。文章详细介绍了主数据准备、计划协议配置、MRP参数精调及EDI集成方案,并提供了实施中的典型问题与解决方案,助力企业优化供应链管理。 阅读详情

相关推荐

9.Vue前端使用iframe集成帆软报表的单点登录

CPT普通报表的地址:【帆软的服务http】+【/webroot/decision/view/report?【帆软的服务http】+【/webroot/decision/view/form?// fineReportHttp:帆软部署的地址。//如果为ie浏览器则页面加载完成后立即执行。// fineLinkSrc:帆软报表的url。//其他浏览器则重新加载onload事件。// 拿到配置的帆软报表的地址参数。//判断是否为ie浏览器。// 帆软报表登录和打开。// 帆软报表登录和打开。

qq_27860623的博客 4650

HC小区管理系统使用常见问题一

说明 建这个文档是为了大家在使用遇到问题登记,避免后面的人再采坑,系统部署前记得看视频https://www.bilibili.com/video/BV1N7411E7rf/ 报APP没有权限访问错误 问题描述: 鉴权失败:AppId 没有权限访问 serviceCode = xx.xx(接口名) 解决方法: 检查是否SQL文件全部表导入,在TT库检查表数量...

hc_java110的博客 5970

Linux SMP系统多核启动机制详解

对称多处理(SMP)是现代操作系统支持多核并行计算的基础架构。其核心原理是通过引导处理器(BSP)初始化系统环境后,通过处理器间中断(IPI)机制唤醒应用处理器(AP)。在x86架构中,AP启动时处于实模式,需要特殊的trampoline代码完成保护模式切换和分页设置。这种设计既保证了系统初始化的正确性,又实现了多核并行处理的性能优势。理解SMP启动流程对优化系统启动速度和调试多核问题至关重要,特别是在云计算和嵌入式系统中,高效的SMP初始化能显著提升系统响应能力。本文以Linux内核为例,深入解析了从BS

weixin_35006125的博客 291

framework.js的修改

一个下午的时间都在调试,在IE下总是不能成功,但是在chrom下是可以成功的。 在网上搜索了一下,资料真少,没办法,把IE的调试关掉了,看到了报错,发现是framework.js的问题,但是又舍不得特效。所以就修改了framework,删掉了一段代码,就通过了。可以看和修改js库了,心里很有成就感。

mails2008的专栏 2872

ICG cell如何通过Latch结构消除与门clock gating中的glitch?

本文深入解析了ICG Cell如何利用Latch结构解决传统与门时钟门控中的毛刺问题。通过将电平敏感锁存器与门控与门结合,ICG Cell将使能信号的变化严格限制在时钟低电平的安全窗口内采样和锁存,从而在时钟有效沿期间提供稳定的控制信号,从根本上消除了因信号延迟不同步而产生的glitch,确保了门控时钟的纯净与电路功能的可靠性。

weixin_29234423的博客 472

游程理论提取灾害事件特征V2---基于MATLAB语言的编程实现

游程理论,灾害事件,MATLAB

EWBA_GIS_RS_ER的博客 3794

Vue 组件框架

<script> export default { name: "cominfo", data() { return { msg: "12345" }; }, props: {}, components: {}, methods: { changebtn() { this.msg = "6666666"; this.changeStatus; } }, computed: { //计算属性

qq_42455145的博客 349

告别连接难题:Windows 11下Multisim主数据库稳定运行终极配置指南

本文详细解析了Windows 11下Multisim 14.0主数据库连接失败的三大根源,并提供了四步终极解决方案,包括系统环境优化、软件权限配置、注册表修复和网络验证绕过技巧。通过实测数据对比,本方案显著提升了启动速度和稳定性,解决了电子仿真中的常见连接问题。

weixin_33738555的博客 436

修改VS2010的VC.net项目 framework对应版本

在C++/CLI中修改VC++的framework版本,由于VS2010不支持像C#项目文件的那种直接的下拉框模式,我们需要在.vcxproj文件中修改目标版本(TargetFrameWorkVersion)。 VS2010中并没有默认的把这个节点添加到项目中,需要手动的添加这个xml节点: 1:使用文本编辑器打开.vcxproj文件,找到并修改如下内容:       v2.0

hbxtlhx的专栏 2万+

ABAP GIT 作用介绍

总结起来,ABAPGit 是一个强大的工具,它通过将 SAP ABAP 项目与 Git 版本控制系统集成,大大提高了代码管理的效率和团队协作的质量。在 ABAPGit 出现之前,ABAP 代码的版本控制和团队之间的协作主要依赖于手工操作或者是 SAP 自带的版本控制工具,这些方式效率低下,且难以实现高效的代码管理。使用 ABAPGit,SAP 项目团队不仅可以提高代码管理的效率和质量,还可以通过 Git 的强大功能实现高效的团队协作和代码审查。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 840

YOLOv11知识蒸馏,实现无损涨点,包含逻辑蒸馏和特征蒸馏中的不同蒸馏方法,适用专栏内的所有模型

知识蒸馏(Knowledge Distillation)是由 Hinton 等人在 2015 年提出来的,主要是用一个复杂的教师模型去指导一个简单的学生模型训练,这样能让学生模型在保持高精度的同时,还能减少计算量。本文便是讲解如何针对的原始模型以及改进后的模型进行知识蒸馏,轻松实现无损涨点。知识蒸馏的核心在于利用已训练好的复杂模型(教师模型)去指导一个更简单的模型(学生模型)进行训练,以此让学生模型在保留较高精度的同时,降低计算成本。特征蒸馏(Feature Distillation)是知识蒸馏的一种形式,

Limiiiing的博客 4962

VC++基于MFC的程序框架剖析(前言)

基于MFC的程序框架剖析 MFC库是开发Windows应用程序的C++接口。MFC提供了面向对象的框架,程序开发人员可以基于这一框架开发Windows应用程序。MFC采用面向对象设计,将大部分的Windows API封装到C++类中,以类成员函数的形式提供给程序开发人员调用。 下面看一下MFC应用程序向导帮助生成的这些代码: 单击Visual Studio菜单栏上的【视图】菜单,单击【类视图】菜单项,这将打开类视图子窗口,方便查看项目中的类组织结构。在“类视图”中展开Test根节点,可以看到项目

当路danglu0010 1941

Cadence SPB16. 6 安装流程

1.首先下载CadenceAllegroSPBorCAD16.6安装包 下载之后运行其中的setup.exe,然后先安装第一项LicenseManager 一直按next或install, 直到被询问license时,单击cancel,然后选是和finish。 2,安装Product Installtion 直接点next跳过这一步 安装完成后,点Exit退出 3.按ctrl+alt+delete打开任务管...

wangjie36的博客 5153

VC中常用的文档类,视图类,框架类,应用程序类获取句柄的方法

VC中常用的文档类,视图类,框架类,应用程序类,自定义类中获取其它四个类的 方法 A: GET  App    AfxGetInstanceHandle()    AfxGetApp() GET  Frame->View->Document     SDI   AfxGetMainWnd() -> GetActiveView() -> GetDocument()     MDI   AfxGetM

lyzhm的专栏 4753

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC编程基础之应用程序框架

1.关于通过代码获得应用程序主窗口的指针 基于MFC框架的主窗口指针保存在CWinThread::m_pMainWnd 中,调用AfxGetMainWnd()函数即可得到,如: AfxGetMainWnd()->ShowWindow(SW_SHOWMAXIMIZED);//程序最大化 2.关于改变窗口风格 调用PreCreateWindow() 函数,改变CREATESTRUCT中的参数,

Jenny650947的专栏 805

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

MFC应用程序框架入门_VC技术_C语言教程

MFC应用程序框架入门_VC技术_C语言教程 本文来自21视频教程网C语言频道    1 MFC概述    顾名思意,MFC应用程序框架是以MFC作为框架基础的,以此程序框架模式搭建起来的应用程序在程序结构组织上是完全不同于以前的Win32 SDK编程方式的。自20世纪90年代初问世以来,MFC一直试图把Windows API函数封装到类库中个各个逻辑类中。MFC的这种封装并非简单地对AP

anhkgg的专栏 1663

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: 钩子技术介绍及函数使用
下一篇: 关于VC中的时间函数讨论
Kudeet
博客等级 码龄23年 1671粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值