04 2018 档案

摘要:一、智能指针的概念 智能指针是一个类,不是指针,智能指针在所包含的指针不再被使用时候会自动释放该所包含指针所占用的系统资源,而不用手动释放。 原理:智能指针封装了包含指针的AddRef()函数和Release()函数,且在该类不被需要的时候在析构函数里调用包含指针的Release()函数释放包含指针 阅读全文

posted @ 2018-04-28 19:18 moisiet 阅读(436) 评论(0) 推荐(0) 编辑

摘要:一、dll文件的导入 参考文献:https://blog.csdn.net/qq_31209383/article/details/51199762 要使用数据库,首先在stdafx.h中导入msado15.dll #import #import "C:/Program Files/Common F 阅读全文

posted @ 2018-04-28 17:06 moisiet 阅读(4139) 评论(0) 推荐(0) 编辑

摘要:参考文章:http://www.cnblogs.com/dhatbj/p/3288152.html 一、桌面窗口: DesktipWindow,是所有窗口的父窗口,通过hwnd=::GetDesktopWindow()获取。 二、窗口样式: 只有三种窗口:重叠窗口(WS_OVERLAPPED)、弹出 阅读全文

posted @ 2018-04-26 17:17 moisiet 阅读(331) 评论(0) 推荐(0) 编辑

摘要:信号量用于线程同步,同步就是协调解决问题。 拥有信号量的线程可以执行,没有信号量的线程等待其他线程释放信号量后获取信号量后可以执行。 步骤: 1.创建一个信号量对象,该对象存储了信号量个数。 HANDLE handle=CreateSemaphore(NULL,initCount,maxCount, 阅读全文

posted @ 2018-04-26 12:06 moisiet 阅读(337) 评论(0) 推荐(0) 编辑

摘要:参考文献:静态成员函数和静态成员 一、静态变量: 1、静态变量属于类的变量,为类共享,在编译期间就分配好了内存。 2.静态变量在头文件中声明(和全局变量一样不要在头文件中定义静态变量),在.cpp文件中定义。 3.静态变量可以被非静态函数使用。 test.h中: static int a; test 阅读全文

posted @ 2018-04-26 09:20 moisiet 阅读(368) 评论(0) 推荐(0) 编辑

摘要:库有两种:动态链接库和静态链接库。 一,使用动态链接库: 通过项目——属性——配置属性——常规——项目默认值——配置类型下,选择动态库(.dll)选项 这样会生成.lib和.dll两种文件。 只是该.lib文件不包含程序实现文件,只包含函数入口信息,因此必须与对于生成的.dll文件配套使用。 使用时 阅读全文

posted @ 2018-04-25 23:00 moisiet 阅读(212) 评论(0) 推荐(0) 编辑

摘要:1.常规DLL可以被各种程序(python,VB等)调用,扩展DLL只能被MFC程序调用。提供给外部使用的控件类只能用扩展DLL。 2.扩展DLL的入口函数是DllMain(),而常规DLL入口是继承自CWinApp的一个类,无消息循环。 3.常规DLL只能导出c++类,c++函数,c++类型的变量 阅读全文

posted @ 2018-04-25 22:49 moisiet 阅读(330) 评论(0) 推荐(0) 编辑

摘要:Sprite精灵,是游戏中对具有动画作用功能的图片的爱称。 精灵,图标和字体等资源是不能够处理事件的,因为它们并不是继承自EventDispatcher.但是可以包含一个能够EventDispatcher子类化对象作为成员。 其实我想知道的是,EventDispatcher的子类能不能够处理系统事件 阅读全文

posted @ 2018-04-25 20:22 moisiet 阅读(134) 评论(0) 推荐(0) 编辑

摘要:一、识别系统消息,并派出该消息 EventLoop(应用程序的事件循环),用于循环的从系统消息队列中获取系统消息(包含消息的各种参数:如鼠标位置,事件类型,鼠标左右键,哪个键盘键等),然后派发相应的事件给窗口进行处理。 二、继承自EventDispatcher 由于继承字EventDispatche 阅读全文

posted @ 2018-04-25 13:35 moisiet 阅读(656) 评论(0) 推荐(0) 编辑

摘要:一、.tlb文件: 只有COM组件才有tlb文件,普通dll文件没有。 包含内容: 1.它包含了COM类和接口的GUID值,接口的函数声明信息,并不是接口的实现文件。相当于类和接口的头文件。 tlb文件被import后,编译成两个文件,.tli文件和.tlh文件,里面详细描述了接口和类声明和GUID 阅读全文

posted @ 2018-04-25 11:29 moisiet 阅读(498) 评论(0) 推荐(0) 编辑

摘要:一般而言,ATL实现了对COM组件最好的支持,所以不用MFC实现COM组件。但是MFC实际上也是可以实现COM组件的。 一、MFC DLL优点: MFC com组件可以将MFC的类型作为参数进行传递,但ATL com只能用规定的COM数据类型。但实际上MFC 扩展dll也可以用MFC类型作为参数。 阅读全文

posted @ 2018-04-23 15:04 moisiet 阅读(527) 评论(0) 推荐(1) 编辑

摘要:接口是COM中的关键词,在c++中并没有这个概念。接口是一种极度的抽象。接口用在COM组件中有自己的GUID值,因此定义接口时一定要指定它的GUID值。 实际上接口就是struct,即#define interface struct 一、接口的定义步骤: 0.包含头文件:#include "afxt 阅读全文

posted @ 2018-04-22 20:56 moisiet 阅读(1431) 评论(0) 推荐(0) 编辑

摘要:Dependency Walker工具: 该工具用来查看dll依赖库和依赖库内的函数。 左上角:模块依赖树,表示该dll所依赖的其它dll文件 右上角:导入函数,即与当前根模块有关系的函数(即根模块或根模块的子模块使用到的模块) 右中间:导出函数,即当前模块所有可以导出的函数(即可以被外界调用的函数 阅读全文

posted @ 2018-04-21 11:31 moisiet 阅读(1188) 评论(0) 推荐(0) 编辑

摘要:创建MFC应用程序时,可以规定MFC程序的工程名称,假设初始为MFCApp,则此后该应用程序的资源文件名称,继承自CWinApp的那个类,包括.def文件,.odl文件等都会以MFCApp打头。 但是,工程名称MFCApp是可以再编辑成其它名称的,设为MFCAqq。则最后生成的无论是.exe文件,还 阅读全文

posted @ 2018-04-20 17:29 moisiet 阅读(606) 评论(0) 推荐(0) 编辑

摘要:一、定义命名空间: 步骤一:在.h文件中:namespace ns{.......}//将定义的类和全局变量,全局函数写入花括号内。 步骤二:在.cpp文件中: using namespace ns;//注意分号一定要写上,因为是一条语句 ns::yourclassname::methodname 阅读全文

posted @ 2018-04-20 15:43 moisiet 阅读(285) 评论(0) 推荐(0) 编辑

摘要:通俗解释glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用 (2012-04-02 09:17:28) 转载▼ 通俗解释glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用 转载▼ 对于glLoadIdenti 阅读全文

posted @ 2018-04-20 14:41 moisiet 阅读(356) 评论(0) 推荐(0) 编辑

摘要:事件派发对象用于处理事件的派发与响应,pyglet的window对象正是继承了它才具有处理事件的能力。 步骤: 1.注册事件类型: EventDispatcher.register_event_type('on_size') 每个事件派发类的继承类都必须调用这个函数注册事件类型。 实际上是在类中维护 阅读全文

posted @ 2018-04-18 10:58 moisiet 阅读(221) 评论(0) 推荐(0) 编辑

摘要:一、遍历对象的属性: 1.dir(obj) :返回对象的所以属性名称字符串列表(包括属性和方法)。 for attr in dir(obj): print(attr) 2.obj.__dict__:返回对象的属性名称和值键值对或者方法名称和方法对象(可以调用)键值对。 dir函数和__dict__属 阅读全文

posted @ 2018-04-17 17:29 moisiet 阅读(13385) 评论(0) 推荐(1) 编辑

摘要:inspect模块用来检查对象的类型(函数,属性,类,抽象基类,方法,模块等等) 是一个封装好的非常有用的模块。 阅读全文

posted @ 2018-04-16 22:44 moisiet 阅读(2961) 评论(0) 推荐(0) 编辑

摘要:实现了__call__方法的类就变成了一个可调用对象,可以像函数一样调用,callable(obj)就返回True,否则返回False。 参考:https://www.cnblogs.com/superxuezhazha/p/5793536.html @classmethod修饰器 作用:在类中定义 阅读全文

posted @ 2018-04-16 15:28 moisiet 阅读(234) 评论(0) 推荐(0) 编辑

摘要:python中类似__xx__的方法和变量是python系统内定义的方法和变量,都是具有特殊意义的基础变量和方法,一般不要擅自使用,除非知道自己在干什么。 具体查看python内置模块builtins.py,里面定义了内置方法、对象和异常,这些定义是最基本的定义。 一、__xx__格式的方法: 一般 阅读全文

posted @ 2018-04-16 15:15 moisiet 阅读(316) 评论(0) 推荐(0) 编辑

摘要:参考文献 一、包 包是一个文件夹,用来存放模块和子包。 包里一般会有一个__init__.py的文件(也可以没有)。 包里会有一个__pycache__文件夹,存放.py文件经解释器解释后的中间字节码(二进制文件)。 二、模块 可以作为模块的文件有.py、.pyc、.pyo、.pyd、.so、.dl 阅读全文

posted @ 2018-04-14 15:42 moisiet 阅读(2247) 评论(0) 推荐(0) 编辑

摘要:字符是用来显示的,如中文字符,英文字符,其类型我字符(串)类型; 字节是用来存储的,一个字节为8bit。由于字节是8位,无法对中文编码,因此诸如a=b'中文'的写法是错误的。但英文标点数字是可以的,如a=b'abc'; 字符要存储在计算机中或进行传输,就要转化成字节,就涉及的编码方式。为了兼顾统一和 阅读全文

posted @ 2018-04-14 09:59 moisiet 阅读(921) 评论(0) 推荐(0) 编辑

摘要:问题来源:导入PyQt5里面的模块时老是出错 为何前两种出错,第三种正确 第一种出错是因为PyQt5中没有QtWidgets.QApplication这个文件(要把QtWidgets.QApplication看成一个整体),包含了一个它下面没有的模块肯定是出错。 第二种出错是因为不支持递归导入,即Q 阅读全文

posted @ 2018-04-13 18:00 moisiet 阅读(601) 评论(0) 推荐(0) 编辑

摘要:一、主菜单、弹出菜单和右键菜单的概念: 主菜单是窗口顶部的菜单,一个窗口或对话框只能有一个主菜单,但是主菜单可以被更改(SetMenu()更改); 创建方式:CMenu::CreateMenu(void); 弹出菜单在菜单项中是带有右向小三角的菜单,主菜单的每个菜单项都是一个弹出菜单(PopMenu 阅读全文

posted @ 2018-04-12 12:00 moisiet 阅读(491) 评论(0) 推荐(0) 编辑

摘要:一、资源、句柄和ID 资源: MFC中的资源,如菜单、对话框、图标、工具条、对话框等,是windows创建的,并占用堆内存。windows在创建这些资源时候会给每个资源分配一个句柄,用来标记这些资源,通过API或函数,可以通过句柄访问这些资源。资源的特点是,它存储在堆内存中。所以创建后就不容易被自动 阅读全文

posted @ 2018-04-12 10:11 moisiet 阅读(693) 评论(0) 推荐(0) 编辑

摘要:一、单个文档和多个文档的区别: MFC分为对话框程序,单文档程序和多文档程序。 单个文档程序:一个主框架内仅允许打开一个视图,若要打开另一个,则当前的文档必须得关闭。单文档程序可以打开不同格式的文档。 对于单文档程序,主框架(CFrameWnd)、视图(CView)、文档(CDocument)被文档 阅读全文

posted @ 2018-04-11 17:18 moisiet 阅读(152) 评论(0) 推荐(0) 编辑

摘要:COM组件有两种暴露组件接口的方式,一种是以虚拟列表的方式暴露;一种就是自动化方式。 虚拟列表(VTable): COM组件将自己所有的方法的地址以一个虚拟表的方式存放在一起,这个虚拟表是一种结构,有内存有地址。虚拟表内函数的排列顺序是IUnknown接口的三个函数在最前面,IDispatch的四个 阅读全文

posted @ 2018-04-11 09:11 moisiet 阅读(162) 评论(0) 推荐(0) 编辑

摘要:集合与包容,实质就是组件之间的互相调用。即一个组件使用另一个组件的功能,达到代码复用的作用。只是这种复用是构建在二进制数据上的(因为被复用的组件常常以dll的格式存在),而不是像c++代码复用是以源文件的形式复用。 集合与包容的区别在于: 包容是将内组件的功能进行封装,由外组件提供接口供客户调用,但 阅读全文

posted @ 2018-04-11 09:00 moisiet 阅读(178) 评论(0) 推荐(0) 编辑

摘要:局部变量,参数变量存放在栈中,当离开作用范围后,分配的内存在作用范围外会被系统自动回收。 new出来的内存空间存放在堆中,不受作用域管理,不会被系统自动回收,只有在使用delete删除或者整个程序结束后才会释放内存。 因此很容易发生忘记delete而造成内存泄漏事件。例如在某个函数中定义有: A* 阅读全文

posted @ 2018-04-10 16:26 moisiet 阅读(5317) 评论(0) 推荐(0) 编辑

摘要:IDL文件: IDL文件主要定义两大类内容:一是定义接口;二是定义类型库。 定义接口的关键字是interface。每个接口定义前面方括号里面的内容是该接口的属性,最重要的是uuid的定义。该部分经过MIDL.exe编译后生成projectName_i.c和projectName_i.h文件,包含着接 阅读全文

posted @ 2018-04-10 14:45 moisiet 阅读(635) 评论(0) 推荐(0) 编辑

摘要:一、字符串指针: char* ch="hello"; 这里的"hello"是字符串常量,是不可以改变的,即通过ch[0]="s"会编译出错。如果不同的变量指向的是相同的字符串,则这几个变量的地址是一样的。 ch保存的是“hello"这个字符串常量的首地址。 二、字符串数组: 字符串数组也就是所谓的c 阅读全文

posted @ 2018-04-09 18:00 moisiet 阅读(1336) 评论(0) 推荐(0) 编辑

摘要:定义有三种: 1.不赋值的定义:int a; 2.赋值的定义:int a=5; 或者 int a;a=5; 3.加extern的定义:extern int a=5;//其实和不加是一样的。 声明只有一种: extern int a; 所有,不要再问我变量不赋值算不算定义,告诉你,算!!!!,你要是敢 阅读全文

posted @ 2018-04-09 17:10 moisiet 阅读(1618) 评论(0) 推荐(0) 编辑

摘要:多态,即多种形态。对于具有继承关系的一类对象,子类表现出了父类的某些特性,但是表现的不一样,这就是多态的现实体现。例如动物可以发声,但是狗是旺旺,狗是动物的一种,但是表现了不同的叫的特点,这就是多态。 若class B:public A A* a=new B();对于这句话该怎么理解? 1.A* a 阅读全文

posted @ 2018-04-09 09:51 moisiet 阅读(141) 评论(0) 推荐(0) 编辑

摘要:一、VARIANT、CComVariant类与CString是什么: CString是MFC定义的字符串类,VARIANT是COM标准为了使COM组件能够被各种语言使用(vc++、vb、java、python等)而规定的一种统一型变量。即VARIANT能够转化成载体语言规定的变量类型,载体语言的变量 阅读全文

posted @ 2018-04-04 16:45 moisiet 阅读(1217) 评论(0) 推荐(0) 编辑

摘要:#define _T(X) L##X _T()是MFC里的宏。VS支持两种编码方式ASCII和Unicode,前者是用单字节编码,只能表示0~255个字符。为了表示各个国家的字符,采用了UNICODE编码,以支持本地化。 Unicode编码采用双字节,对于ASCII规定的字符在高位加0来转化成Uni 阅读全文

posted @ 2018-04-04 15:18 moisiet 阅读(297) 评论(0) 推荐(0) 编辑

摘要:转载自:http://www.cppblog.com/ice197983/articles/4178.html 一、调用步骤: 使用ATL编写的COM组件调用方法有两种:1.导入myCom.dll文件;2.导入myCom.tlb文件;(myCom是工程名称) #import "\\..myCom.d 阅读全文

posted @ 2018-04-04 10:17 moisiet 阅读(415) 评论(0) 推荐(0) 编辑

摘要:1.XML中的类型标签: <xs:complexType>复合类型和<xs:simpleTyle>简单类型是数据结构类型,包含了各种类型的属性。可以被子类型继承,继承方式为<xs:extension base="SignalFunction"/>。 2.XML中的元素<xs:element> 元素是 阅读全文

posted @ 2018-04-02 22:23 moisiet 阅读(359) 评论(0) 推荐(0) 编辑

摘要:参考资料: 一、dll导出方式: MFC的DLL函数导出方法有两种:一种是通过模块定义文件DEF文件;另一种是在导出函数前加_declspec(dllexport)。 1.def文件方法: 只需要在EXPORTS后写上要导出的函数名称即可。 优点:导出函数名称在编译后不会发生改变,适合与VB、c等其 阅读全文

posted @ 2018-04-01 12:54 moisiet 阅读(419) 评论(0) 推荐(0) 编辑

摘要:一、指针的设计思想 指针的设计思想是基于人类对具体事物进行抽象思维的体现。是人类特有的抽象思维的体现。 这就好比人类用食物来代替可以吃的东西,这就是对可以消化的,无毒副作用的,能为人体提供能量的一类物体的抽象。 同理,指针是对内存中的一个地址的抽象或指代,是为程序员提供操作内存的手段。程序员不可以直 阅读全文

posted @ 2018-04-01 09:16 moisiet 阅读(234) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示