Windows核心编程
文章平均质量分 79
NickWei9999
这个作者很懒,什么都没留下…
展开
-
深入解析线程池的使用
为什么需要线程池目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短。 传 统多线程方案中我们采用的服务器模型则是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务。任务执行完毕后,线程退出,这就是是“即时创建,即 时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩原创 2016-07-12 11:02:35 · 5961 阅读 · 0 评论 -
通过api获取句柄控制其他窗体
很多时候,编写程序模拟鼠标和键盘操作可以方便的实现你需要的功能,而不需要对方程序为你开放接口。比如,操作飞信定时发送短信等。我之前开发过飞信耗子,用的是对飞信协议进行抓包,然后分析协议,进而模拟协议的执行,开发出了客户端,与移动服务器进行通信,但是这有一些缺点。如果移动的服务器对接口进行变更,我所编写的客户端也要进行相应的升级。如果服务器的协议进行了更改,甚至个人编写的这种第三方客户端需要重写。而原创 2016-08-23 15:19:02 · 9694 阅读 · 0 评论 -
string、wstring、cstring、 char、 tchar、int转换方法
1、string转wstring1234567wstring s2ws(const string& s){ _bstr_t t = s.c_str(); wchar_t* pwchar = (wchar_t*)t; wstring result =原创 2016-08-23 09:54:08 · 1452 阅读 · 0 评论 -
使用 C++ Builder 创建应用程序
3.1 创建应用程序 C++Builder的主要用途于设计创建Windows应用程序。有三种基本的Windows应用程序: · WindowsGUI应用程序。 · 控制面板应用程序。 · 服务应用程序。 3.1 创建应用程序 C++Builder的主要用途于设计创建Windows应用程序。有三种基本的Windows应用程序:· WindowsGUI应用程序。·原创 2016-08-19 20:18:36 · 6353 阅读 · 0 评论 -
《Windows核心编程》读书笔记
这篇笔记是我在读《Windows核心编程》第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多个人的思考和对实现的推断,因此不少条款和Windows实际机制可能有出入,但应该是合理的。开头几章由于追求简洁,往往是很多单独的字句,后面的内容更为连贯。 海量细节。 第1章 错误处理1. GetLastError返回的是最后的错误码,即更原创 2016-07-05 19:11:08 · 3426 阅读 · 0 评论 -
C++实现线程池
欢迎转载,转载请注明原出处:http://blog.csdn.net/ithzhang/article/details/9020283 代码地址:https://github.com/ithzhang/ThreadpoolLib.git本文介绍的线程池采用C++语言,在windows平台下实现。此版本为Version 1.0,以后还会推出功能更完备的后续转载 2016-07-13 23:11:13 · 893 阅读 · 0 评论 -
基于C++11的线程池
源代码地址:http://files.cnblogs.com/magicsoar/ThreadPoolProject.rar*需要C++11的支持,在vs2013下编译通过运行效果 背景在传统的收到任务即创建线程的情况下,我们每收到一个任务,就创建一个线程,执行任务,销毁线程,我们把这三个过程所用的时间分别记做T1,T2,T3任务本身转载 2016-07-12 16:24:46 · 570 阅读 · 0 评论 -
线程池(VC_Win32)
线程池(本章节中例子都是用 VS2010 编译调试的)线程池编写必须在 Windows Vista 操作系统(以及以上版本的操作系统)下,且 C++ 编译器版本至少是 VS2008 线程池的功能以异步的方式来调用一个函数每隔一段时间调用一个函数当内核对象触发的时候调用一个函数当异步 I/O 请求完成的时候调用一个函数注意当一个进程初始化的时候,它并没有任何与原创 2016-07-12 16:22:05 · 2418 阅读 · 1 评论 -
CreateProcess并隐藏窗口
PROCESS_INFORMATION pi;STARTUPINFO si; //隐藏进程窗口si.cb = sizeof(STARTUPINFO);si.lpReserved = NULL;si.lpDesktop = NULL;si.lpTitle = NULL;si.dwFlags = STARTF_USESHOWWINDOW;si.wShowWindo转载 2016-08-24 10:14:24 · 5996 阅读 · 0 评论