上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 71 下一页
摘要: SDService和SDClient的通信,一开始想到的就是使用socket的方式。但后来想了一下,windows下进程间通信的方法很多,其他方法是否可以呢?socket的通信方式开销比较大阿。于是:1. 用Mutex+Memory map file(unnamed). 一开始SDService创建一个mutex,然后wait直到SDClient signal这个mutex。然后SDService就从memory map file中读取command,将结果数据填写入memory map file,再signal另外一个mutex通知SDClient。SDClient最终从memory map 阅读全文
posted @ 2011-04-10 14:45 super119 阅读(544) 评论(0) 推荐(0)
摘要: 在看windows via C/C++的时候,经常看到module, instance, image这样的字眼。其实这是windows中的一些术语,module就相当于exe, dll文件。在进程的地址空间中,exe, dll都当作module被load。所 以windows中的数据结构HMODULE和HINSTANCE是一样一样的,他们的值都是一个地址,就是该module的base address。这也就是为什么像LoadIcon/LoadImage这些函数都需要一个HMODULE的参数一样,他们需要这个参数去这个 module的地址开始去将资源读取出来。exe和dll一般都是通过memor 阅读全文
posted @ 2011-04-10 14:45 super119 阅读(341) 评论(0) 推荐(0)
摘要: 最后面有完整的源代码,在Schedule Download项目中使用。这里描述几个关键点:1. 不能参考网上的文章,说的都很片面而且版本过老。请参考MSDN:Win32 and COM development -> Networking -> Network communication -> Routing and Remove Access Service -> SDK Document -> Routing and Remote Access Service下的内容。事实上,对于win32的编程开发,第一参考资料始终是MSDN,如果MSDN上的内容有些过于浅显 阅读全文
posted @ 2011-04-10 14:44 super119 阅读(780) 评论(0) 推荐(0)
摘要: 代码都在下面了,目前这个版本实现的功能还非常的少,能实现的有:1. GET方法。给定一个URL(可以带中文),返回http的响应数据,包括文本和二进制数据2. 支持代理服务器,需要用户预先设定好proxy server ip, port, username, password.不支持的有:1. POST2. 查询http响应的header。3. 将返回的文本数据重新编码,变成UTF-16。这需要首先从header取出http server响应的数据是什么编码的,然后就可以使用windows的MultiByteToWideChar来进行转换。这里总结几点开发过程中的注意点:1. MSDN上的资料 阅读全文
posted @ 2011-04-10 14:44 super119 阅读(3651) 评论(0) 推荐(0)
摘要: 1. 创建windows console应用程序。vs自带的windows service模板创建出来的项目看不懂。2. _tmain函数这样写:Code: Select all/* Main routine that starts the service control dispatcher */VOID _tmain (int argc, LPTSTR argv[]){ SERVICE_TABLE_ENTRY DispatchTable[] = { { ServiceName, ServiceMain }, { NULL, NULL } }; StartServiceCtrlDispatc 阅读全文
posted @ 2011-04-10 14:43 super119 阅读(651) 评论(0) 推荐(0)
摘要: 做ScheduleDownload,要做一个logger,这个logger的大致结构如下:Code: Select all#ifdef _DEBUG#define LOGGER(log_level, filename, line, format, ...) \ logger_action(log_level, filename, line, format, __VA_ARGS__);#else#define LOGGER#endif/* * Log the strings. filename should be __FILE__ and line should be __LINE__ */vo 阅读全文
posted @ 2011-04-10 14:43 super119 阅读(2162) 评论(0) 推荐(0)
摘要: 关于new、delete和堆的一些理解 先看以下的两个简单的程序: 第一: //////////Visula C++ 6.0环境 #include<iostream.h> void main() { int a=3; int *p=new int; p=&a; cout<<*p<<endl; delete p; /////////有错误 } 第二: //////////Visual C++ 6.0环境 #include<iostream.h> void main() { int a=3; int *p=new int; *p=a; cou 阅读全文
posted @ 2011-04-10 14:36 super119 阅读(190) 评论(0) 推荐(0)
摘要: 1、首先需要include一个文件,如下: #include <tlhelp32.h> 2、参看以下代码: Code: Select all //遍历系统所有进程,杀死联众世界HANDLE handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);PROCESSENTRY32 *info = new PROCESSENTRY32;info->dwSize = sizeof(PROCESSENTRY32); if(Process32First(handle,info)){ if(GetLastError()==ERROR_ 阅读全文
posted @ 2011-04-10 14:35 super119 阅读(202) 评论(0) 推荐(0)
摘要: 判断一个字符串是否是一个整型数或浮点数 两个函数:isNum-判断是否是一个整型数 isFloat-判断是否是一个浮点数 代码: Code: Select allbool CUtility::isNum(CString csInput){//将字符串一个一个字符拆出来判断是否是数字char cTemp;int nStringLength = csInput.GetLength();bool bReturnValue = true;for (int nLoopindex = 0; nLoopindex < nStringLength; nLoopindex++){ //将字符一个一个取出来 阅读全文
posted @ 2011-04-10 14:35 super119 阅读(1254) 评论(0) 推荐(0)
摘要: 透明位图的显示 包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数: TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另 一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。 一、TransparentBlt 函数的使用 TransparentBlt 函数在Windows98/Windows2000以上版本运行,系统中需要包含 Msimg32.dll,使用时可以链接 Msimg32.lib。 Windows98下的TransparentBlt会产生资源泄漏,所以不 阅读全文
posted @ 2011-04-10 14:34 super119 阅读(311) 评论(0) 推荐(0)
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 71 下一页