摘要:
1、什么是服务 在运行框中输入services.msc,服务窗口中显示的都是服务。 服务:是一种应用程序类型,它在后台运行。 系统有2种服务:一种叫win32服务,他运行在用户态,对应的映像文件是.EXE或.DLL;另外一种叫系统服务,它运行在内核态,对应的映像文件是.SYS也就是驱动程序。除了运行 阅读全文
摘要:
1、简介 Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务。为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择。C++面向对象的方法固然方便,但由于用类对底层 Win32 函数调用进行了封装,它不利于学习服务程序的基本知识。 服务是一个运行在后台并实现勿 阅读全文
摘要:
一、问题 1、[SC] OpenSCManager 失败 5:拒绝访问。 以管理员身份运行2、net start test发生系统错误 2。系统找不到指定的文件。 1)查看exe文件的路径是否正确?最好使用全路径。若修改服务路径可执行:sc delete 服务名,sc create 服务名 binP 阅读全文
摘要:
一、相关结构体 1、SERVICE_STATUS结构 定义了服务的运行状态/服务类型/接受的控制形式以及指定错误代码等 1 typedef struct _SERVICE_STATUS { 2 DWORD dwServiceType; //服务类型 3 DWORD dwCurrentState; / 阅读全文
摘要:
1、Windows API Windows应用程序编程接口(API):针对Microsoft Windows操作系统家族的系统编程接口。每个操作系统实现了Windows API的不同子集。Windows API包括几千个可调用的函数,可分为7类: ①基本服务 ②组件服务 ③用户界面服务 ④图形和多媒 阅读全文
摘要:
1、简介 COM接口指针很危险,因为使用过程中需要每一个使用者都要严格并且正确的AddRef和Release,一旦出现问题,就会造成对象不能被正常释放,或者对象被重复删除,造成程序崩溃。所以使用COM接口,必须小心翼翼才行。但即使所有的代码中,都正确的AddRef和Release,也不一定能保证万无 阅读全文
摘要:
1、简介 要了解 STL 中的 pair 类模板,因为关联容器的一些成员函数的返回值是 pair 对象,而且 map 和 multimap 容器中的元素都是 pair 对象。 2、pair的定义 1 template <class_Tl, class_T2> 2 struct pair 3 { 4 阅读全文
摘要:
1、简介 deque 也是顺序容器的一种,同时也是一个可变长数组。要使用 deque,需要包含头文件 deque。所有适用于 vector 的操作都适用于 deque。 在 deque 中,随机存取任何元素都能在常数时间内完成(但慢于vector)。它相比于 vector 的优点是,vector 在 阅读全文
摘要:
1、简介 关联容器内部的元素都是排好序的,有以下四种。 set:排好序的集合,不允许有相同元素。 multiset:排好序的集合,允许有相同元素。 map:每个元素都分为关键字和值两部分,容器中的元素是按关键字排序的。不允许有多个元素的关键字相同。 multimap:和 map 类似,差别在于元素的 阅读全文
摘要:
1、双向链表简介 list 是顺序容器的一种。list 是一个双向链表。使用 list 需要包含头文件 list。双向链表的每个元素中都有一个指针指向后一个元素,也有一个指针指向前一个元素。在 list 容器中,在已经定位到要增删元素的位置的情况下,增删元素能在常数时间内完成。list 容器不支持根 阅读全文
摘要:
1、简介 vector 是顺序容器的一种。vector 是可变长的动态数组,支持随机访问迭代器,所有 STL 算法都能对 vector 进行操作。要使用 vector,需要包含头文件 vector。 在 vector 容器中,根据下标随机访问某个元素的时间是常数,在尾部添加一个元素的时间大多数情况下 阅读全文
摘要:
1、简介 stack 是容器适配器的一种。要使用 stack,必须包含头文件 <stack>。 stack就是“栈”。栈是一种后进先出的元素序列,访问和删除都只能对栈顶的元素(即最后一个被加入栈的元素)进行,并且元素也只能被添加到栈顶。栈内的元素不能访问。如果一定要访问栈内的元素,只能将其上方的元素 阅读全文
摘要:
1、简介 STL 中的容器适配器有 stack、queue、priority_queue 三种。它们都是在顺序容器的基础上实现的,屏蔽了顺序容器的一部分功能,突出或增加了另外一些功能。 容器适配器都有以下三个成员函数: push:添加一个元素。 top:返回顶部(对 stack 而言)或队头(对 q 阅读全文
摘要:
1、map简介 map 是关联容器的一种,map 的每个元素都分为关键字和值两部分,容器中的元素是按关键字排序的,并且不允许有多个元素的关键字相同。 注意:不能直接修改 map 容器中的关键字。因为 map 中的元素是按照关键字排序的,当关键字被修改后,容器并不会自动重新调整顺序,于是容器的有序性就 阅读全文
摘要:
1、简介 set 是关联容器的一种,是排序好的集合(元素已经进行了排序)。set 和 multiset 类似,它和 multiset 的差别在于 set 中不能有重复的元素。multiset 的成员函数 set 中也都有。 不能直接修改 set 容器中元素的值。因为元素被修改后,容器并不会自动重新调 阅读全文
摘要:
1、简介 queue 和 priority_queue 都是容器适配器,要使用它们,必须包含头文件 <queue>。 2、queue queue 就是“队列”。队列是先进先出的,和排队类似。队头的访问和删除操作只能在队头进行,添加操作只能在队尾进行。不能访问队列中间的元素。queue 可以用 lis 阅读全文
摘要:
1、简介 容器(container)用于存放数据的类模板。可变长数组、链表、平衡二叉树等数据结构在 STL 中都被实现为容器。程序员使用容器时,就是将容器类模板实例化为容器类,需要指明容器中存放的元素是什么类型的。 容器中可以存放基本类型的变量,也可以存放对象。对象或基本类型的变量被插入容器中时,实 阅读全文
摘要:
1、计算方法 假设计算机运行一行基础代码需要执行一次运算。 int main(int argc, char** argv) { printf("Hello, World!\n"); // 需要执行 1 次 return 0; // 需要执行 1 次}总共执行2次。时间复杂度为O(1). 把算法需要执 阅读全文
摘要:
1、简介 在 STL 中,算法就是函数模板。STL 中的算法大多数是用来对容器进行操作的,如排序、 查找等。大部分算法都是在头文件 <algorithm> 中定义的,还有些算法用于数值处理,定义在头文件 <numeric> 中。 STL 提供能在各种容器中通用的算法(大约有70种),如插入、删除、查 阅读全文
摘要:
1、简介 将类型名作为强制类型转换运算符的做法是C语言的老式做法,C++ 为保持兼容而予以保留。C++ 引入了四种功能不同的强制类型转换运算符以进行强制类型转换:static_cast、reinterpret_cast、const_cast 和 dynamic_cast。 强制类型转换是有一定风险的 阅读全文