
其他
浮生未央迹浮萍
这个作者很懒,什么都没留下…
展开
-
C++中子类和父类之间的相互转换
学C++的时候有时候会对类类型之间的转换感觉到些许的迷惑,下面记录一点点理解和认识首先需要明白一点:只有子类转换成父类,父类不可能转换成子类。因为子类是从父类继承而来,子类中包含父类中所有成员。而如果父类可以转换成子类,意味着将子类中将有一部分是未知的成员。这是不被允许的。在子类转换成父类的时候,也需要注意,只能是指针或者引用,不能是对象,除非有重写构造函数和赋值函数。重写函数...原创 2017-06-25 10:40:19 · 26975 阅读 · 0 评论 -
深入理解CRITICAL_SECTION
摘要 临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。本文深入研究临界区的原理,以揭示在查找死锁和确认性能问题过程中的有用信息。它还包含一个便利的实用工具程序,可以显示所有临界区及其当前状态。 在我们许多年的编程实践中,对于 W...转载 2014-02-26 19:15:37 · 488 阅读 · 0 评论 -
MFC 界面线程和工作者线程
每个系统都有线程,而线程的最重要的作用就是并行处理,提高软件的并发率。针对界面来说,还能提高界面的响应力。 线程分为界面线程和工作者线程,界面实际就是一个线程画出来的东西,这个线程维护一个“消息队列”,“消息队列”也是界面线程和工作者线程的最大区别,这个词应该进到你的脑子里,根深蒂固的!如果在界面线程的某个地方停住,这说明它处理不了窗口消息了,所以有时候我们就会看到整个界面无响应了。这种问...转载 2014-02-27 15:18:44 · 799 阅读 · 0 评论 -
用VS2013打开之后的解决方案,用VS2010不能打开了
用2008都能打开,只要你改一个文件就成,右键,你的解决方案的文件 .sln 用记事本打开Microsoft Visual Studio Solution File, Format Version 12.00# Visual Studio 2012把开头的两行改成下边这样Microsoft Visual Studio Solution File, Format Version 11.00# Vis...转载 2014-03-20 18:27:18 · 1401 阅读 · 0 评论 -
彻底解决 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
最近我的VS2010不知道怎么回事,平时用的好好的,近期竟然出现了所谓的LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏头痛万分,查了各种资料一直无解,今天为了封装资源,嵌入清单,所以不惜血本仔细找了下,终于有解决方案了。平时我们都是将 项目-->项目属性-->配置属性-->连接器-->清单文件-->...转载 2014-03-26 21:43:48 · 1034 阅读 · 0 评论 -
近期做东西所遇到的几个MFC恼火的问题及解决方法
可能是心态不太平静,最近写代码效率如此的低,遇到了很多问题,解决起来着实痛苦,耗费了很多时间。下面列举出来,对网上方法进行总结,顺便记录一下1.对于单文档中非view,doc,frame,app类的自定义类,继承view,framewnd等中的消息响应 自己做了个窗口分割,所以需要新加一个视图类,这个视图类继承了CView类,添加之后,可能需要在自定义类中生成一些自己的按钮,或者菜...原创 2014-04-22 09:36:12 · 1090 阅读 · 0 评论 -
MFC对话框OnInitDialog()初始化问题
背景:新建一个对话框类继承于CDialog,CDialog类中定义了一个虚函数OnInitDialog(),希望通过重载此函数进行自己个性化操作方法:作为一个MFC的菜鸟,首先想到的方法就是不考虑父类中的初始化函数,在自己的类中直接声明定义一个自己的初始化函数,然后在类的构造函数中进行调用,从而实现初始化的目的。这种方法可能粗略想一下,还真说不定能行。执行起来确实能行,但是执行起来的有个问题就...原创 2014-05-15 16:33:44 · 5971 阅读 · 0 评论 -
大数据的乘法和加法
由于编程语言常用类型的位数限制,精度收到很大的局限。只能在一定的数据范围内进行运算,超出这个范围回导致数据失真。在进行图像编码的过程遇到了这样问题,写了两个小程序,很多地方都需要优化,不过在一定的测试条件下还可以用。 /功能:大数据相乘//参数:相乘的两个数,用vector存储数据的每一位//返回:相乘结果,用一个vector存储结果的每一位vector<int> ...原创 2014-06-29 17:13:25 · 605 阅读 · 0 评论 -
CFile
概述编辑CFile是MFC文件类的基类,它直接提供非缓冲的二进制磁盘输入/输出设备,并直接地通过派生类支持文本文件和内存文件。CFile与CArchive类共同使用,支持MFC对象的串行化该类与其派生类的层次关系让程序通过多形CFile接口操作所有文件对象。例如,一个内存文件相当一个磁盘文件。使用CFile及其派生类进行一般目的的磁盘I/O,使用ofstream或其它Microsoft...转载 2014-09-18 10:38:38 · 464 阅读 · 0 评论 -
操作系统中的进程同步
在进行多线程执行过程中,对于共享资源的访问会出现不可知的异常。临界区:临界区就是为了避免这种异常的发生,当一个线程进入临界区的时候,就定义一个标志,表示现在临界区正在被访问,其他线程只能等待。但是临界区的实现还是没有办法完全避免多个线程同时访问临界区而产生的异常。只是异常发生的概率会小很多。更进一步在临界区中使用中断来标志临界区是否可以访问来解决问题。就是线程进入临界区的时候首先访问中断是否可...原创 2014-11-04 21:23:25 · 429 阅读 · 0 评论 -
操作系统学习基础-进程和线程
父进程和子进程:当一个程序执行的时候实际上就是一个进程的执行,进程可以创建子进程,每个进程都有一个描述表,用于描述进程,子进程会对父进程的代码和数据,堆栈进行一个拷贝。然后跟父进程进行并发执行,这个时候,无论是父进程还是子进程都是独立执行,只是父进程可以通过创建子进程的时候返回的子进程的进程标识符(PID)对子进程进行操作。特别需要注意的是子进程和父进程之间不能通过引用相同地址上的变量来进行通...原创 2014-11-04 21:23:26 · 652 阅读 · 1 评论 -
操作系统学习之程序编译,链接,加载过程中的内存管理
程序从代码到可执行程序的过程:代码-编译-链接-加载-执行编译:编译器将源程序转换成可重定位代码。其有三个逻辑地址块:代码段(机器指令块),数据段(静态变量块),栈段(表示程序执行时使用的栈)。编译器将所有的翻译过的机器指令写入代码段。考虑可重定位对象模块中的过程入口点,一般而言,编译器不能确定入口点的地址,因为目标过程可能在不同的可重定位模块中。例如,如果目标是库例程,如printf...原创 2014-11-04 21:24:14 · 1402 阅读 · 0 评论 -
使用控件时提示"未声明标识符"的解决方法
问题提出:mfc扩展Dll程序中,新建了一个对话框IDD_DIALOG 1及三个文本编辑控件IDC_SIGM,、IDC_RATIOLOW和IDC_RATIOHIGH。并新建了一个对话框类(派生于CDialog类)。有关控件引用的代码如下: enum { IDD = IDD_DIALOG1 }; DDX_Text(pDX,IDC_SIGMA,m_Sigma);DDX_Text(pDX...转载 2014-11-15 21:46:49 · 5390 阅读 · 0 评论 -
解决在word中用mathtype编辑的公式转换成pdf时出现错位现象
在网上找了一个网友回答,成功解决公式前面的空格删掉,在word设置》显示,勾选显示空格,删掉后另存PDF格式就好了如果是word2010的话就在文件》选项》显示中勾上显示空格就行了,把所有公式前面的空格删了...原创 2016-06-13 17:34:03 · 44107 阅读 · 0 评论 -
ubuntu开机找不到normal
问题:今天开机ubuntu突然提示如下: error: file ‘/boot/grub/i386-pc/normal.mod’ not found. Entering rescue mode… grub rescue> 抱着一脸懵逼的心情开始寻找解决之路。其实从提示信息也可以看出来是grub文件中的找不到对应文件,导致无法正常引导系统,也就必然无法开机喽。 解决:知道问题出在什么地方,那原创 2016-10-14 13:56:07 · 3498 阅读 · 1 评论 -
多线程编程总结
留个纪念,不错的总结。十个例子清晰列举啦多线程编程的奥妙。 VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为 “延时6秒”,添加按钮的响...转载 2014-02-26 14:45:35 · 538 阅读 · 0 评论