- 博客(70)
- 资源 (3)
- 收藏
- 关注
原创 opencv3.1 + CUDA8.0编译问题
1. LINK : warning LNK4044: unrecognized option '/LC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/lib/x64'; ignoredI found the problem, it is in CMakeLists.txt :foreach(p ${CUDA_LIBS
2017-09-30 22:51:05 689
原创 inter x86 浮点寄存器笔记
intel 80486 寄存器结构:基本寄存器、系统寄存器、调试测试寄存器、浮点寄存器。基本寄存器包括八个通用寄存器EAX, EBX, ECX, EDX, EBP, ESP, EDI, ESI;一个指令指针寄存器EIP;六个段寄存器CS, DS, ES, SS, FS和GS;一个标志寄存器EFLAGS。它们都是程序可见寄存器。EAX, EBX, ECX, EDX都可以作为32位寄存器、
2013-07-28 00:46:05 8108
转载 dispatchEvent 与 addEventListener
先假设我们有一个自定义事件类型MyEvent.OPEN_QQ(打开QQ的自定义事件)首先定义一个显示对象(注意所有显示对象都是EventDispatcher的直接或间接子类,EventDispatcher中定义了dispatchEvent方法)?12var a:Sprite = new Sprite();a.a
2013-06-29 00:11:17 5229
原创 VS2008 编译驱动时的问题
error LNK2019 : unresolved external symbol @__security_check_cookie把缓冲区安全检查关了就行。error LNK2019 :KeRaiseIrqlToDpcLevel 找不到实现函数包含hal.lib包含下C语言遇到的问题:C语言 必须把变量定义放在最前面,如果像C++那样在使用时才定义的话
2013-05-31 15:25:04 697
原创 VS2008 debug时显示 microsoft visual stdio is busy
前段时间在调试驱动,装了虚拟机,设置了环境变量,今天调试了以前的程序,按了F5,发现vs在加载系统DLL时非常慢,根本无法调试,而后在桌面右下角显示 “microsoft visual stdio is busy ” ,搜了很多资料无法解决,终于找到一篇有用的了,现已安装该方法解决了;在VS2008的安装目录的IDE文件夹下(我机器上是D:\Program Files\Micr
2013-05-24 16:38:45 2307
原创 MFC 消息映射机制剖析
MFC的类非常多,继承关系复杂,如何完成MFC巨大的类层次之间消息的传递是一个技术难点,最简单的就是采用虚函数机制,每继承一个类,就覆盖父类的函数,但问题来了,MFC有上百个类,如果使用虚函数,那么每个派生类都会生成一个巨大的虚函数表,效率低下,内存使用率高,违背了微软设计MFC的准则。微软采用了所谓的消息映射机制,来完成不同对象之间消息的传递,本文就MFC9.0源码进行分析,大致讲解MFC的消息
2013-03-18 19:43:12 5527
转载 c++ DLL
虽然能用DLL实现的东西都可以用COM来实现,但DLL的优点确实不少,它更容易创建。本文将讨论如何利用MFC来创建不同类型的DLL,以及如何使用他们。一、DLL的不同类型 使用MFC可以生成两种类型的DLL:MFC扩展DLL和常规DLL。常规DLL有可以分为动态连接和静态连接。Visual C++还可以生成WIN32 DLL,但不是这里讨论的主要对象。1、MFC扩展DLL
2012-08-09 23:23:19 681
原创 c++ 创建静态链接库动态链接库
c++ 使用静态链接库:vs创建window console程序,选择创建静态链接库,即可。创建动态链接库,创建MFC动态链接库,在创建时,需在类名前添加 AFX_EXT_CLASS,即: class AFX_EXT_CLASS test即可,否则会出现 LNK2019的错误,无法找到函数的实现。
2012-08-09 23:22:00 760
转载 C++多线程
多线程使用总结基础:1)最好使用C++ runtime的函数创建线程,即调用_beginthreadex创建线程。CreateThread()函数并不会执行C运行时数据块的变量的每线程初始化,因此在任何使用C运行时库的应用中,不能使用CrateThread()函数。2)最好不要显示的调用ExitThread()或TerminateThread(),因为调用这些不进行清理工作。3)S
2012-07-31 21:33:42 4843
转载 c++ 读写excel
想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行:1. 在StdAfx.h文件中加入:include include 2. 通过ODBC直接创建Excel文件(暂定文件名:Demo.xls)//创建并写入Excel文件void
2012-05-10 19:34:23 7672 1
转载 CString 之 Left(),Mid(),Right()
CString Left( int nCount ) const; //从左边1开始获取前nCount 个字符CString Mid( int nFirst ) const; //从左边第nCount+1 个字符开始,获取后面所有的字符CString Mid( int nFirst, int nCount
2012-05-06 16:57:18 13353 1
原创 exit(0) 退出发生内存泄露的解决方案
exit(0) 退出是会发生内存泄露,也许内存没有自动回收,没调用到析构函数;可以使用 PostQuitMessage(0) 退出程序。
2012-05-06 16:56:29 2848
转载 C++ volatile, explicite, mutable
1. volatile 有些变量是用volatile关键字声明的。当两个线程都要用到某一个变量且该变量的值会被改变时,应该用volatile声明,该关键字的作用是防止优化编译器把变量从内存装入CPU寄存器中。如果变量被装入寄存器,那么两个线程有可能一个使用内存中的变量,一个使用寄存器中的变量,这会造成程序的错误执行。 volatile的意思是让编译器每次操作该变量时一定要从内存中真正取出,
2011-11-14 15:44:40 1191
转载 c++ 零值比较
这是程序员面试的一道常见题,也是个C++基础问题。若只在大学里看过几本基础的编程入门书,看见这道题可能会觉得奇怪,不就是和0比较吗,直接拿出来比就是了,其实非也。下文引自google搜索结果,出处不详,高手可以无视,菜菜留下,记得做好笔记。首先给个提示:题目中要求的是零值比较,而非与0进行比较,在C++里“零值”的范围可就大了,可以是0, 0.0 , FALSE或者“空指针”。1).int
2011-11-13 15:46:14 2197
转载 字符串Hash函数
Hash查找因为其O(1)的查找性能而著称,被对查找性能要求高的应用所广泛采用。它的基本思想是:(1) 创建一个定长的线性Hash表,一般可以初始化时指定length;(2) 设计Hash函数,将关键字key散射到Hash表中。其中hash函数设计是最为关键的,均匀分布、冲突概率小全在它;(3) 通常采用拉链方法来解决hash冲突问题,即散射到同一个hash表项的关键字,以链表形式来表
2011-11-06 21:01:34 1313
转载 c++内存分布,代码段、全局数据区、栈、堆
声明两点:(1)开发测试环境为VS2010+WindowsXP32位;(2)内存布局指的是虚拟内存地址,不是物理地址。1.测试代码#include using namespace std; int g_int_a; int g_int_b; void f_1() { cout"I'm f_1"} void f_2() { cout"I'm f
2011-11-05 10:08:56 3116
转载 结构体定义 typedef struct 用法详解
typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于:若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n;若用typedef,可以这样写,typedef struct node{}NODE; 。在申请变量时就可以这样写,NODE n;区别就在于使用时,是否可以省去str
2011-10-31 19:15:28 730
转载 程序员面试题精选100题(08)-求1+2+...+n
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。方法一: class Temp{public: Temp() { ++ N; Sum += N; } static void Reset() { N = 0; Sum = 0; } stati
2011-10-31 15:03:24 645
转载 程序员面试题精选100题(55)-不用+、-、×、÷数字运算符做加法
方法一:5的二进制是101,17的二进制10001。还是试着把计算分成三步:第一步各位相加但不计进位,得到的结果是10100(最后一位两个数都是1,相加的结果是二进制的10。这一步不计进位,因此结果仍然是0);第二步记下进位。在这个例子中只在最后一位相加时产生一个进位,结果是二进制的10;第三步把前两步的结果相加,得到的结果是10110,正好是22。由此可见三步走的策略对二进制也是管用的。
2011-10-30 18:16:56 689
转载 STL中的map详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(
2011-10-17 13:19:04 519
转载 进程、线程优先级
Process priority classThread priority levelBase priorityIDLE_PRIORITY_CLASSTHREAD_PRIORITY_IDLE1THREAD_PRIORITY_LOWEST2THREAD_PRIORITY_BELOW
2011-07-28 16:19:51 1134
原创 信号量
static HANDLE* m_pVideoWriterHandle; m_pVideoWriterHandle.push_back(); SetEvent(m_pVideoWriterHandle[pVideoObject->m_nVideoIndex]); for (i
2011-07-25 17:29:03 496
原创 释放内存出错
当新建一个指针,并指向另一个指针指向的内存空间时,当这个内存空间被释放时,新建的指针必须设为NULL, 不然很容易出错。比如: char * pBuffer = new char [256];char* pTemp = pBuffer; delete pBuffer; pBuffer = NULL; /////////////////////////////////
2011-07-12 10:20:37 788
原创 vector 内存泄露问题
这个问题貌似以前也遇到过,今天再次遇到,debug进去也发现内存都释放了,但结果还是有内存泄露,很是纳闷!最好还是发现了问题所在!注意下面这个循环加粗那个话,当把 m_pFrameObject[i] 的数据压入到 m_pVideoObject 中后,把 m_pFrameObject[i] 的指针给删了,则m_pFrameObject[i+1] 的指针移动到了 m_pFrameObject[i]
2011-07-02 20:41:50 3072
转载 CFileFind类的使用总结
1、CFileFind类的声明文件保存在afx.h头文件中。2、该类的实现的功能:执行本地文件的查找(查找某个具体的文件,查找某类文件x*.x*,查找所有文件*.*)3、CFileFind类是CGopherFileFind和CFtpFileFind类的基类。4、CFileFind类的构造函数::CFileFind()和关闭函数::Close()我会成对使用。5、CFileFind类
2011-06-07 17:21:00 721
转载 Updatedata()不能针对某个控件单独使用
对话框上好几个控件,但不能指定对一个控件进行Updatedata()操作,否则仍然是对整个对话框上的控件起作用。因为Updatedata()是整个对话框的成员函数,而不是控件的成员函数。如果要对单个控件进行更新,那么可以使用GetWindowText()和SetWindowText(),效果是一样的
2011-06-03 09:05:00 2034
原创 Windows has triggered a breakpoint in xxxxx.exe.
Windows has triggered a breakpoint in xxxxx.exe.This may be due to a corruption of the heap, and indicates a bug in xxxxx.exe or any of the DLLs it has loaded.The output window may have more dia
2011-05-24 20:15:00 3419 2
转载 C/C++ 字符串处理函数
C:char st[100];1. 字符串长度 strlen(st);2. 字符串比较 strcmp(st1,st2); strncmp(st1,st2,n); 把st1,st2的前n个进行比较。3. 附加 strcat(st1,st2); strncat(st1,st2,n); n表示连接上st2的前n个给st1,在最后不要加'/0
2011-05-24 16:22:00 658
转载 从文件读取字符串总结
从文件读取字符串:fscanf1.遇到空格和换行等不可见字符结束,不会读入换行符,末尾添加'/0'2.两行中间的一个空行或多个空行不会读入3.当文件末尾有一个空行或多个空行时会读一次,但不会读入任何内容,目标字符串不变,也不会添加'/0' fgets(str,n,fp)1.只有遇到换行(/x0D/x0A 和 /x0A)才结束,遇到换行时读入一个换行符'/x0A',不会读
2011-05-18 10:31:00 2452
转载 UpdateData()
一、总结UpdateData()函数UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。 当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateData(FALSE);如果你希望知道用户
2011-04-22 15:04:00 696
转载 vector, list, deque 比较
c++的STL模板库中提供了3种容器类:vector,list,deque对于这三种容器,在觉得好用的同时,经常会让我们困惑应该选择哪一种来实现我们的逻辑。在少量数据操作的程序中随便哪一种用起来感觉差别并不是很大,但是当数据达到一定数量后,会明显感觉性能上有很大差异。本文就试图从介绍,以及性能比较两个方面来讨论这个问题。 vector - 会自动增长的数组list
2011-03-28 10:52:00 810
转载 error C2146: syntax error : missing ';' before identifier 'PVOID64'
error C2146: syntax error : missing ';' before identifier 'PVOID64'由 directdraw 的升级引起在网上查了下资料,一般的解决方法是:解决方法:在winnt.h中加上以下语句#define POINTER_64 __ptr64typedef void *PVOID;
2011-03-10 13:12:00 2421
转载 构造函数、析构函数、虚函数
首先说说构造函数,大家都知道构造函数里就可以调用成员变量,而继承中子类是把基类的成员变成自己的成员,那么也就是说子类在构造函数里就可以调用基类的成员了,这就说明创建子类的时候必须先调用基类的构造函数,只有这样子类才能在构造函数里使用基类的成员,所以是创建子类时先调用基类的构造函数然后再调用自己的构造函数。通俗点说,你要用某些物品,但这些物品你没办法自己生产,自然就要等别人生产出来,你才能拿来用。
2011-03-06 10:54:00 670
转载 CHECK BOX 用法
勾选时...做某种算法不勾选时 做另一种算法if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ) ){// 勾选}else{}IDC_CHECK1是CheckBox控件。 函数功能:该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。 函数原型:UIN
2011-03-04 20:57:00 6879
原创 cv::Mat 与 CvMat的区别
cv::Mat和CvMat都可以表示图像数据,只是却不明白他们之间到底什么区别,用CV::MAT 每次都有56byte的内存泄露。后来查看了源码才知道原来cv::Mat是一个类(Class),而CvMat是一个Struct。前者除了几个成员变量之外还有很多的成员函数和重载函数,可以实现很多的图像数据处理功能,而后者只有几个成员变量,要对其成员进行一些处理,需要借用别的函数。
2011-02-15 14:57:00 4839 1
转载 error C2533: ' ::{ctor}' : constructors not allowed a return type
error C2533: ' ::{ctor}' : constructors not allowed a return type出现这个错误是因为在定义的类体中,在最后少了个分号“;”class{private:public:};
2011-02-13 15:07:00 5627
原创 《转》CRectTracker(橡皮筋)类的使用
CRectTracker(俗称“橡皮筋”类)是一个非常有意思的类。你在Windows中,在桌面上用鼠标拖拽,便可以看到一个虚线的矩形框,它便是橡皮筋.它可以用做显示边界,你也可以扽它的八个角用来放大缩小,做框选使用。如何通过编程来实现这种功能呢?这就是CRectTracker类的作用;介绍橡皮筋类前,先介绍其他两个类:Cpoint 类或Point类,cpoint.x cpoint
2011-01-24 23:19:00 987
原创 MFC 获取系统时间 CTime
CTime t1 = CTime::GetCurrentTime();CTime tm;tm.GetDay();tm.GetHour();tm.GetMinute();tm.GetSecond();
2011-01-22 23:07:00 1114
原创 头文件的中的namespace
又一次碰到了这个情况,明明是加了头文件的,却找不到头文件里定义的数据类型,原来是在前面加了 namespace ,要注意了,只要在引用该头文件的文件中加 using namespace ** 就行了
2011-01-17 15:54:00 1115
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人