============================================================================= ============================================================================= 涉及到的知识点有: 一、c++基础知识01 二、c++基础知识02 1、c语言中,如何在调用main函数之前就执行一段代码? 三、类与结构的区别01 四、类与结构的区别02 五、类的继承概念 1、一个mfc程序的例子的核心代码: 2、破解MFC中按钮的例子。 3、MFC版的小小IDE: 4、MFC版的小小浏览器: ============================================================================= ============================================================================= 会用到两个界面工具:vs2017下的MFC和QT,它们都是基于图形的。所以有些知识我们还没有学习到。 它们本身的构架就是用c++来完成的。
之前自己学习了PE文件的格式,后来自己写了个PE文件的解析器,这段时间工作上刚好要用到它,老板需要能查看某个exe中加载的dll的一个工具,我在使用之前自己写的这个东西的时候,发现很多东西都忘记了,所以,我在这回顾下当时的思路,并记录下来,方便以后直接使用。也算是回顾下之前学习的内容,将学的东西学以致用 工具总体分为这样几个部分: 1. 文件头的信息 2. pe文件节表的信息 3. pe文件数据目录表的信息 4. 简单的从RVA到Frva的计算 工具主要采用MFC的框架作为界面,pe文件的解析部分完全由自己编写,主要使用了Windows中定义的一些结构体。刚开始开启界面时,所有功能按钮和显示界面都为空,当我们正确加载一个pe文件后这些按钮就都可以使用。
一、关于MFC 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。 二、常用控件 1.Buttton 2.Picture Control 3.Static Text 4.Radio Button
大家好,又见面了,我是你们的朋友全栈君。 读者朋友们可能天天使用Visual C++这个强大的工具来开发应用程序,不知道注意到没有,Visual C++每次装载一个项目的时候,为了使项目加载过程不至于太单调,会在状态栏的左半部分会出现一个装载进度条,用来即时显示Visual C++装载项目的进度,当项目装载完毕后,进度条隐藏。那么这个功能是如何实现的呢?为了说明该功能的实现原理,本例提供了一个范例程序prgsbar,它演示了在编辑视图里显示文本文件,在加载文本文件时,在界面的状态条中的进度指示器仿真显示文件的加载过程,当文本装载完毕后,进度条隐藏。由于该程序在装载文件显示的进度条时无法进行拷屏操作,所以这里没有给出状态条中显示进度条的界面效果图,读者可以运行本书所带光盘中的程序代码观看相应的效果。 一、实现方法 虽然Visual C++中的MFC类提供了标准的进度指示器控件(progress control),但是我们不能在状态栏里直接使用这个控件,要解决这个问题,可以创建一个可重用C++类CProgStatusBar,这个类从CStatusBar派生,用来来实现状态条中的进度指示。整个实现过程不是很难,思路是在状态栏创建一个进度指示器控制,把它作为子窗口来对待,然后根据不同的状态来显示或者隐藏进度指示器。 在具体实现CProgStatusBar类的过程中,首先在CProgStatusBar派生类中加了一个CProgressCtrl类型的数据成员–m_wndProgBar,然后重载CstatusBar类的二个重要成员函数:OnCreate()、OnSize(),最后还要在该类中添加一个自定义成员函数OnProgress()。在上述三个函数中, OnCreate()负责在状态栏第一次被创建时接收控制,继而创建进度指示器并将它初始化为一个子窗口,它的实现代码如下: int CProgStatusBar::OnCreate(LPCREATESTRUCT lpcs) { lpcs->style |= WS_CLIPCHILDREN; VERIFY(CStatusBar::OnCreate(lpcs)==0); VERIFY(m_wndProgBar.Create(WS_CHILD, CRect(), this, 1)); m_wndProgBar.SetRange(0,100); return 0; } OnCreate()函数在状态栏的式样中加了一个WS_CLIPCHILDREN,它告诉Windows不要绘制子窗口以下的状态栏区域,这样可以减少屏幕闪烁。接着OnCreate()函数创建进度指示器控件并将它的范围设置成[0,100]。注意在这里创建进度指示器控件时没有用WS_VISIBLE,因为我们要实现的目标是仅仅当装载文件时进度条才显现,其余时间内应用程序都隐藏它。 熟悉Windows编程的人都清楚,无论何时,只要在某个窗口里添加子窗口,那么一定要负责管理它的大小尺寸,也就是说,当父窗口大小改变后,子窗口的大小也要跟着作相应的改变。一般来说,这个工作由父窗口的WM_SIZE消息处理函数OnSize()来作,所以我们也要处理该类的OnSize()函数。 void CProgStatusBar::OnSize(…) { CStatusBar::OnSize(…); CRect rc; GetItemRect(0, &rc);//获取状态条的第一个窗口的尺寸; m_wndProgBar.MoveWindow(&rc,FALSE);//移动进度条到状态条的第一个窗口; } 从上述代码可以看出,CProgStatusBar::OnSize()将进度指示器放在了状态栏的第一个窗格,这个窗格通常用来显示程序的”就绪”信息和命令提示信息。注意这里不论进度指示器是处于可见状态还是隐藏状态,MoveWindow都照样起作用–所以即便是进度指示器处于隐藏状态,其窗口大小同样是可调的。 调整好进度指示器的窗口大小后,下面要作的就是进度指示器的显示,进度指示器当前进度状态的显示在CProgStatusBar::OnProgress中完成。它有一个类型为UINT的入口参数:参数值的范围从0到100,表示进度百分比,0表示进度没开始,100表示全部完成。如果这个参数的值大于0,则OnProgress显示进度控制并设置指示器的位置;如果参数值等于0,则 OnProgress隐藏进度控制。 虽然子窗口控件通常都是放在父窗口能绘制的区域的最上面,但这样做在绘制方面是有一定风险的。在隐藏/显示进度控制时尤其如此,这时候会出现两个问题:第一,因为进度指示器显示在状态栏的第一个窗格位置,所以如果进度条指示器
这段时间通过使用MFC做车牌识别系统和媒体播放器,重新温习了一下MFC,特别是控件的使用,同时也学习了ADO技术、Socket网络编程、文件传输、OpenCV、多线程、数字图像处理、Windows Media Player、CActiveMovie控件、DricetShow多媒体等的知识,不过由于时间有限,有些东西也没有深入,但是学习编程的方法都是相通的。觉得有时还是通过项目实践学习的知识比较快,通过参考别人的代码结合MSDN这些API参考文档,加深对一门新技术的理解和消化对于初学者来时往往不失为一种快速的入门手段。废话不多说了,进入主题吧,今天把我学习到的MFC控件做一个小结吧,希望能给其他的人以帮助吧。
某个设备有很多生产工艺数据需要记录,数据可能有100~200个不等。一般会用单独一个屏幕显示趋势图。操作上的主要诉求有以下几点:
more指令会以一页一页的形式显示文件内容,按空白键(space)显示下一页内容,按Enter键会显示下一行内容,按 b 键就会往回(back)一页显示,其基本用法如下:
例1:一页一页显示文件内容,但这条命令可以往回翻页,查看翻过的文件内容 page up向上翻页,其他操作和more命令一样。在less命令中可以按“/+需要查找文件内容的关键字”(黄色标记)查询内容,高亮内容(红色标记)即为含有关键字的内容,按"n"可以查看下一个含有关键字的内容。
写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。 对于文章中出现的任何错误请大家批评指出,一定及时修改。 有任何想要讨论和学习的问题可联系我:
一、上机之前的介绍 软件环境:VC++6.0 目的:熟悉基本的MFC框架搭建和了解界面 二、MFC上机操作步骤 1,在Windows桌面上运行VC++6.0。 2,新建项目工程文件。 3,在MFC 应
head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。如果提供了多个文件名,则每个文件中的数据都以其文件名开头。 命令格式 head [参数]... [文件]... 命令功能 head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。 命令参数 -q 隐藏文件名,在多个文件名的情况下有效 -v 显示文件名 -c N 从头显示N字节的内容 -n N 从头显示N行 显示文件的前10行 > head -n 10 1
原文链接:https://rumenz.com/rumenbiji/linux-head.html
当谈到Linux命令行操作时,ls是一个非常基础但又非常重要的命令。它用于列出文件和目录,帮助您浏览和了解当前工作目录的内容。在这篇博客文章中,我们将介绍ls命令的基本用法和一些常见的使用示例。
一、可能你忽视的基础 在正式开始之前,我不得不从最基本的地方开始,因为这些地方大多数人会忽视的一干二净,如果不在开始进行说明,那么在后面一定会有很多困惑的地方。 最开始我们回到数字在计算机里的表示,回到最开始的问题上-2&-255是多少,那么我们首先得回顾一下-2在计算机里面的表示是什么样子的。 最开始,希望你还记得什么叫无符号整数和有符号整数,实际上,你得庆幸在一般的图像中没有浮点数,不然你需要复习或者重新学习的基础比这个还多。 先说有符号整
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/psbeond/article/details/99546363
以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl类 SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn
想要查看文件的最后几行,或是在实时监控日志的时候,就可以使用 Linux 命令 tail。
一、介绍 本文将介绍几个与文档相关的命令 软件环境: 物理机 Windows 8.0 虚拟机 VMware Workstation 12 Linux系统 CentOS 7.3 二、命令cat 命令ca
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
由于测试过程中经常需要实时查看Tomcat日志,所以要掌握tail命令的用法。将平时用到的在此记录汇总一下。
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。 MFC中使用CListCtrl类来封装列表控件的各种操作。 通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID )创建一个窗口,
用于在终端中逐页查看文件内容。它们特别适用于查看大文件,因为它们不会一次加载整个文件,而是按需加载内容。
在项目开发和维护的过程中,我们经常需要在 Linux 服务器上查询和分析日志文件。为了高效地处理大量的文本数据,我们可以借助一些强大的文本过滤工具,如 tail -f、more、zmore 、less、zless和 grep。本文将换种方式介绍这些常用的 Linux 命令,帮助您在日志分析中更加得心应手。
从事过软件测试的小伙们就会明白会使用Linux是多么重要的一件事,工作时需要用到,面试时会被问到,简历中需要写到。 对于软件测试人员来说,不需要你多么熟练使用Linux所有命令,也不需要你对Linux系统完全了解,你只需要学会一些常用的基本命令,这些命令足够支撑你去查看日志,定位bug,修改文件,搭建环境就完全OK了。对于Linux系统底层的实现不需要了解,甚至对于绝大多数的命令都不需要知道。 我们是如何在我们的工作中使用Linux呢? 相信很多人都知道,之所以我们会用到Linux,是因为我们的产品将Lin
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾。
通过管道把history命令的输出传递给grep命令,即查找已执行命令中出现cat的行
cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件。
在Linux系统中,查看文件内容是进行系统管理和日常操作的基本技能之一。通过一些简单而有效的命令,您可以快速浏览文件的内容,检查配置文件、日志文件等。本文将介绍几个常用的Linux命令,帮助您轻松地查看文件内容。
🎬 鸽芷咕:个人主页 🔥 个人专栏:《C语言初阶篇》 《C语言进阶篇》
tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
uniq命令本身被用作去除文本文件中的重复行,与sort命令相似,但是始终还是有区别的。文本文件在Linux中,既可以是txt,也可以是其他任意自定义格式。
head命令以行为单位,取文件的内容,后面不接参数时默认打印前10行。 语法格式:head [参数] [文件] 常用参数: -n 后面接数字,代表显示几行的意思 -c 指定显示头部内容的字符数 -v 总是显示文件名的头信息 -q 不显示文件名的头信息 参考实例 显示前3行文件内容: [root@linuxcool ~]# head -n 3 install.log Installing libgcc-4.4.7-23.el6.x86_64 warning: libgcc-4.4.7-23.el6.x86_
下面是 CStdioFile 类的部分列表,其中使用了 MFC 在其类中按类成员的用法划分它们时所采用的大多数标准注释: class CStdioFile : public CFile { DECLARE_DYNAMIC(CStdioFile) public: // Constructors CStdioFile(); ... // Attributes FILE* m_pStream; // stdio FILE ... // Operations virtual void Wri
head 显示文件内容的头部。在系统默认情况下,head 命令只显示文件的头10 行内容。
这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法。那么从这篇博客开始,我们就正式进入Linux命令的学习。学习命令,首先要跟大家纠正的一点就是,我们不需要记住每
以全屏的方式来显示文件的内容,每次显示一页,可按键向下翻页。more 命令中自带了很多快捷键,H(获得帮助信息),Enter(向下翻一行),空格(向下滚一屏),Q(退出)。
这里不知道会不会有人是真的新手 新新手 不知道怎么 如何建立一个MFC 工程 应该不会吧? 就是 打开VS 新建项目-MFC -MFC工程-点基于对话框 -和在静态库中使用 然后下一页将关于对话框
Linux中的cat命令连接文件并打印到标准输出设备上(通常是shell)。cat的最常见用法之一是显示文件,还可以即时创建文件,并可以直接在终端上进行基本编辑。
文件管理篇 📝显示目录内容: ls [选项] [文件] #参数: ls -a #显示所有文件以及目录 ls -l #长格式显示文件及目录、权限、大小 ls -r #按字母排序显示 ls -t #按照修改时间排序显示 ls -S #根据文件大小排序 ------------------------------------------ #例: ls -a /home #显示home目录内的文件 ls -l /home #显示home目录的权限,大小 📝查看路径: pwd [选项] #参数: pwd -L 显示
sld文件 前段时间,有网友委托我帮他做一个家具的图库。 首先,做图库的方法有很多,最简单的是MFC拖控件然后自己把做好的bmp图贴进去就可以了,麻烦一点的是sld文件,最麻烦 是用blockview做。 下面先说说3种办法的区别: 首先,如果用MFC拖控件的办法,最简单也最方便,用static或者用picture控件,把bmp贴进去就好了,双击控件的时候,关闭 对话框,然后给cad发送命令就可以了,方便,简单。不好的地方在于自己做bmp图是有大有小的,bmp图贴到控件中的时候, 会有缩放,bmp本来就不是质量很高的图形文件,就会出现失真。 如果用blockview做,首先这个玩意是用来显示dwg图纸的,用这个做图库,一是有点杀鸡用牛刀的感觉,二是blockview这个 东西如果显示过多图纸,那么会很慢的。当然它显示的是dwg,所以不会失真。 那么看来最简单的是用sld来做图库了,cad本身也支持这个,搭配mnu菜单文件,就可以很好的实现图库功能,当然,用这 个做图库,最大的问题是需要你自己做一个完美的sld文件才行,不然也是很丑的。
可以指定多个文件 FILE,以空格分隔,此种情况下,输出的内容前会列出所属文件名。如果未给定 FILE 或者 FILE 是 -,则从标准输入读取。
变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止记录数 OFS 输出域分隔符 ORS 输出记录分隔符
bzcat命令解压缩指定的.bz2文件,并显示解压缩后的文件内容。保留原压缩文件,并且不生成解压缩后的文件。
领取专属 10元无门槛券
手把手带您无忧上云