技能
文章平均质量分 62
xp275500976
这个作者很懒,什么都没留下…
展开
-
Word标题编号变黑框
1、临时解决选中黑框区域,按住Ctr,自右至左选择后,呈灰色显示,Ctr+shift+S,显示并点击重新应用格式即可解决。2、彻底解决不过使用"重新应用"应用样式功能可解决word文档中标题编号变黑的问题,但保存重新打开后问题依旧。它的主要原因是模板的字体文件损坏,需要VBA代码来批量重置。步骤如下:第一步,创建宏。在Word菜单栏中单击"视图"-"宏"-"查看宏",打开对话框,快捷键ALT+F8;输入宏名称(自定义),单击创建;第二步,在VBA代码编辑器中输入如下代...原创 2022-01-14 10:16:12 · 3773 阅读 · 0 评论 -
printf函数实现的深入剖析
研究printf的实现,首先来看看printf函数的函数体 int printf(const char *fmt, ...) { int i; char buf[256]; va_list arg = (va_list)((char*)(&fmt) + 4); i = vsprintf(buf, fmt, arg); write(buf转载 2013-06-17 15:25:15 · 584 阅读 · 0 评论 -
C++一些基本的内存释放模板
1.方法名称: __delete (template) 方法描述:以传入的指针类型,去释放传入的list所包含的所有item. 传入的类型必须是指针类型,且不能是void*.如果list为空不会出错template void __delete(TList* list){ if(list == NULL) { retur转载 2013-08-05 00:18:54 · 935 阅读 · 0 评论 -
AnsiString类
AnsiString类是BCB中最常见类之一,了解它对以后深入学习BCB大有帮助。介绍AnsiString类之前,先要介绍一些背景知识。VCL(Visual Component Library 可视化组件库)大量利用Pascal长字串数据类型,几乎所有基于文本的VCL属性都采用Pascal长字串。例如,Text、Name和Caption属性都是Pascal长字串属性。VCL的许多构件方法和事件转载 2013-08-05 00:10:01 · 1226 阅读 · 0 评论 -
函数的返回值
一、缺省情况下,函数的返回值是按值传递的这意味着得到控制权的函数将接收返回语句中指定的表达式的拷贝,例如: Matrix grow( Matrix* p ) { Matrix val; // ... return val; } grow()把存储在 val 中的值的拷贝返回到调用函数,但调用函数不能用任何方转载 2013-08-26 14:44:19 · 707 阅读 · 0 评论 -
boost::algorithm学习
boost::algorithm学习boost::algorithm学习#include using namespace std;using namespace boost; 一:大小写转换1 to_upper() 将字符串转为大写 Example: string str1(" hello world! "); to_upper(str1); // str转载 2013-11-19 19:11:24 · 866 阅读 · 0 评论 -
XP更改文件夹的默认打开方式为:资源管理器
XP系统中,我习惯使用Windows的资源管理器窗口进行文件的操作,这样很是方便。但是系统默认状态,双击打开“我的电脑”,并不是使用“资源管理器”打开的。 不过,我们可以借助其它办法来实现让资源管理器成为“我的电脑”的默认打开方式。 第一种让“资源管理器”默认打开“我的电脑”的方法: 单击“开始→运行”,在打开的“运行”对话框中输入“Regedit”,打开注册表编辑器,并在窗口左转载 2014-01-10 10:52:28 · 6990 阅读 · 0 评论 -
操作系统-进程线程--3--线程安全概念
线程安全的概念:通常讲的是针对方法或者函数,在函数执行过程中不会造成资源冲突就是线程安全的,多个线程来调用也没事情,线程不安全就会造成数据错误或者崩溃啊啥的。线程安全: 在多线程中使用时,不用自已做同步处理. 线程不安全: 在多线程中使用时, 必须做线程同步,不然会有未知后果. 对于线程不安全的代码, 注意做好互斥与同步, 对于异常处理要完善.一般而言“线程安全”由转载 2014-01-24 09:24:20 · 1268 阅读 · 0 评论 -
iterater的erase
(http://blog.csdn.net/seawave/article/details/4401847)有时候会有这么一种不太常见的需求:从一个map中删除所有符合某种条件的项目,而这种条件与map的key基本没啥关系。比如,一个存储学生花名册的map,key为学号(int),value为姓名(string),如果要按学号删除很容易,但如果需要删除该map中所有姓“张”的学生,就只能遍转载 2014-04-30 15:31:15 · 599 阅读 · 0 评论 -
VC用OLE方式读写Excel
(转自:http://blog.csdn.net/qinghezhen/article/details/9906023) 前几天要做一个项目,需要读取Excel中的数据。从网上查资料发现,主要是有两种方式。一是把Excel表当成数据库使用ODBC读写,这样操作起来就跟操作Access数据库似的。但这种方式效率比较低。另一种方法是OLE技术(Object Linking and Embe转载 2014-03-25 10:55:39 · 6442 阅读 · 0 评论 -
DB2 日常维护技巧,第 4 部分
DB2 日常维护技巧,第 4 部分数据库代码页、表结构等本文主要介绍数据库管理员(DBA)在日常维护中遇上一些比较紧急的情况如何处理,如何形成自己的应急方案,以及在日常维护中需要注意哪些技巧。“ DB2 日常维护技巧,第 4 部分”主要包括如何更改本地系统名称、如何解决数据库别名已经存在的问题、如何解决 DB2 数据库代码页不相容的问题、如何快速清空一个大表中的所有数据转载 2014-04-25 15:58:22 · 984 阅读 · 0 评论 -
函数返回值类型问题
如果函数的返回值是一个对象,有些场合用“引用传递”替换“值传递”可以提高效率。而有些场合只能用“值传递”而不能用“引用传递”,否则会出错。例如:class String{...// 赋值函数String & operate=(const String &other);// 相加函数,如果没有friend 修饰则只许有一个右侧参数friend String operate转载 2013-06-17 14:56:41 · 600 阅读 · 0 评论 -
容器内存释放问题(STL新手笔记)
最近看了下STL,用的过程中有一些体会需要记一下。 容器的空间申请和基本函数操作,以及algorithm等都比较好理解,用起来也很方便,比较关键的是容器元素包含指针时,空间的申请和释放问题,这个觉得STL做得挺乱的。总结了几点注意的。 1)自己new的空间,在释放的时候必须先delete,然后再释放容器。例如list MS,链表中存的是自己的动态字符串,如果字符串是自己动态申请的,转载 2013-05-15 22:47:35 · 929 阅读 · 0 评论 -
关于VC++中CMAP用法
参考一:映射表类(CMap)是MFC集合类中的一个模板类,也称作为“字典”,就像一种只有两列的表格,一列是关键字,一列是数据项,它们是一一对应的。关键字是唯一的,给出一个关键字,映射表类会很快找到对应的数据项。映射表的查找是以哈希表的方式进行的,因此在映射表中查找数值项的速度很快。映射类最适用于需要根据关键字进行快速检索的场合,我们的程序中就用映射表来保存计时器标志值和类实例指针,用计时器转载 2013-04-28 11:27:11 · 1279 阅读 · 0 评论 -
WH_CBT Hook将非模态对话框显示为模态对话框
<br />关键字:非模态、模态、Hook、WH_CBT、CBTProc、<br /> <br />1、意图<br />有时候我们希望将非模态窗口显示为模态窗口。比如在IE的“文件”菜单下选择“打印”,弹出的“打印”对话框就是非模态的(也许我们不太清楚Microsoft的设计意图,一般来说这里的“打印”对话框应该是模态的)。这种情况下如何将“打印”对话框显示为模态的呢(这个对话框对我们来说是Black Box)?<br /> <br />2、简单实现<br />简单地说,模态窗口显示时,其父窗口是被Disa转载 2010-07-27 02:10:00 · 811 阅读 · 0 评论 -
Dll与lib
<br />(1)lib是编译时需要的,dll是运行时需要的。<br /> 如果要完成源代码的编译,有lib就够了。<br /> 如果要使动态连接的程序运行起来,有dll就够了。<br /> 在开发和调试阶段,当然最好都有。<br /> <br />(2)在动态库的情况下,有两个文件,一个是引入库(.LIB)文件,一个是DLL文件,引入库文件(.LIB)包含被DLL导出的函数的名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到所需要使用的DLL文件,库中转载 2011-04-01 00:17:00 · 464 阅读 · 0 评论 -
关于CRecordSet
VC使用CDatabase类和CRecordset类以ODBC方式连接MS SQL SERVER2000数据库。在调用CRecordset对象的GetFieldValue方法时,总是弹出错误:无效的描述符索引。奇怪,我填写的字段名在数据库里明明有啊,怎么提示错误。重写一遍,不行。复制过来,还是不行。最后终于在网上找到一位仁兄曾经遇到过同样的问题,还给出了解决方法:在调用GetFieldValu转载 2011-06-08 15:33:00 · 1295 阅读 · 0 评论 -
多线程同步与互斥(3)
在进行多线程编程时,难免还要碰到两个问题,那就线程间的互斥与同步:线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放转载 2012-02-02 10:02:07 · 18367 阅读 · 1 评论 -
KMP
KMP 匹配算法是由 "Knuth Morris Pratt" 提出的一种快速的模式匹配算法。 hint:不为自身的最大首尾重复子串长度 1.待解决的问题:假设P为给定的子串,T是待查找的字符串,要求从T中找出与P相同的所有子串,这称为模式匹配问题。 (可以给出子串在T中的位置) (下文中提到的P和T分别为子串和目标串) 让我们先来看个例题: T: t转载 2012-02-02 10:19:25 · 707 阅读 · 0 评论 -
介绍Linux下面线程的操作、多线程的同步和互斥
线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)有一int型全局变量g_Flag初始值为0;2) 在主线称中起动线程1,打印“this is thread1”,并将g_Flag设转载 2012-02-02 10:53:28 · 506 阅读 · 0 评论 -
指针(一)
一。指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int *ptr; (2)char *ptr; (3)i转载 2012-02-07 11:28:20 · 369 阅读 · 0 评论 -
指针(二)
C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:The right-left rule: Start readin转载 2012-02-07 11:34:44 · 253 阅读 · 0 评论 -
关于Visual Assist 函数注释
用去头文件的头部/******************************************************************** 创建时间: $DATE$ $HOUR$:$MINUTE$ 文件名称: $FILE_BASE$.$FILE_EXT$ 文件作者: $name=King.Sollyu$转载 2012-03-23 14:33:49 · 1401 阅读 · 0 评论 -
WIN32开发:如何获取父进程的句柄
众所周知,windows中的进程是可以有父子关系的,拥有父子关系的进程,一旦父进程结束,子进程有会随之退出。但是如果进程之间没有父子关系,我们如何让子进程在父进程退出是也同时跟着退出呢?方法有很多,本文介绍其中的一种利用父进程ID的方案,现实的原理很简单:先获取父进程的ID,然后通过ID来获取父进程Handle,通过监视父进程的Handle来决定子进程是否退出。所以,这里的关键就是如何获取父进程的转载 2012-04-11 10:10:37 · 4679 阅读 · 0 评论 -
关于文件与文件夹存在性的判断
1. 使用_access函数,函数原型为 int _access( const char *path, int mode );2. 使用CreateFile函数,函数原型为: HANDLE CreateFile( LPCTSTR lpFileName, // pointer to name of the file DWORD dwDesiredAccess, // access (read-w转载 2012-04-25 19:03:42 · 294 阅读 · 0 评论 -
NetAdd
http://www.doc88.com/p-189619372889.htmlhttp://blog.sina.com.cn/s/blog_4d8205e40100gjg5.htmlhttp://www.cplusplus.com/reference/string/string/http://www.cnblogs.com/westfly/archive/2011/06/13/207转载 2012-04-16 18:50:12 · 373 阅读 · 0 评论 -
编译常见问题校正
1:warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止在VS2008下运用OpenCV编译图像处理中出现如题错误时:(1)转换Code文件为Unicode格式;(未实践)(2)在Project -> Properties -> Configuration Properties -> C/C++ -> Ad转载 2012-10-11 15:34:38 · 577 阅读 · 0 评论 -
工具栏(toolbar)
<br />创建工具栏方法:<br />1.CToolBar::Create创建工具栏 <br />m_wndToolbar.Create(this,WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,AFX_IDW_TOOLBAR);<br />也可以:m_wndToolBar.Create(this);<br />m_wndToolBar.SetBarStyle((m_wndToolBar.GetBarStyle() & ~CBRS_TOP) | CBRS_BOTTOM); <br转载 2010-07-15 14:15:00 · 757 阅读 · 0 评论