08 2011 档案

摘要:ewrwerwerew 阅读全文

posted @ 2011-08-25 11:32 我要穿越 阅读(292) 评论(0) 推荐(0)

摘要:#include "StdAfx.h" #include <windows.h> #include <tlhelp32.h> // #pragma comment(lib,"kernel32") // // #pragma comment(lib,"user32") // // #pragma comment(linker, "/subsystem:windows") ... 阅读全文

posted @ 2011-08-20 20:59 我要穿越 阅读(1887) 评论(0) 推荐(0)

摘要:.............. 阅读全文

posted @ 2011-08-20 00:50 我要穿越 阅读(450) 评论(0) 推荐(0)

摘要:进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对 像ICQ一类的发送聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助: 首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,运输层,应用层. UDP属于运输层,下面我们由下至上一步一步来看: 以太网(... 阅读全文

posted @ 2011-08-18 23:03 我要穿越 阅读(291) 评论(2) 推荐(1)

摘要:琢石成器那本书看来的 572页 //全信书 不如不信书 不知道你们信不信 反正我是信了 同步和异步的不同 是取决于缓冲区的大小个发送数据大小 TCP send 同步: 当端口缓冲区不管是否能容下发送内容 都是发送完所有数据都 返回 异步 :当能容下发送数据的时候,发送全部数据后返回返回发送数据大小; 当缓冲区不能容下全部数据的时候,把能容下数据填入后返回 ,返回值是填入数据的大小 当缓冲区满的... 阅读全文

posted @ 2011-08-18 16:10 我要穿越 阅读(316) 评论(0) 推荐(0)

摘要:前段时间使用VC6中STRING,VECTOR时DEBUG模式出现的警告, 大概判断应该是调试时一些类调用后导致名字过长,超过了255个字符,产生, 今天网上找了下,问题是因为VC6对STL的一些不完全支持造成,手工屏蔽就可以。 方法为在源文件头部加入一下预编译代码 #ifdef WIN32 #pragma warning (disable: 4514 4786) #endif 问题解决。 今天也... 阅读全文

posted @ 2011-08-17 18:59 我要穿越 阅读(590) 评论(0) 推荐(0)

摘要:结构 { IO缓冲区 其他一些结构 } 这种就是发生了粘包 这里我是点了2次发送信息 然后断点停掉客户端 不让他马上处理 发生这样一次在接到了77个字符 如果还有按我目前的字符串处理 这样就必要进程粘包处理 阅读全文

posted @ 2011-08-16 21:56 我要穿越 阅读(135) 评论(0) 推荐(0)

摘要:TCP的流方式 TCP有缓冲区 8K or 4K 缓冲区如果满了的话 在发送 这样如果小数据的话 多次久会粘再一起 无法分清楚几个包 数据的是远远不断得过来 想办法分开这些数据就就可以了 所以建立个协议 规定一下包的结构 包类型 : 具体是干什么的 包SIZE :包的大小 随后而来的数据流中 读取多少个字节 读完这个包以后 就是下一个包了 阅读全文

posted @ 2011-08-16 19:29 我要穿越 阅读(175) 评论(0) 推荐(0)

摘要:全局的如果卸载HOOK 其他进程中的DLL全部退出 WM_GETMESSAGE 只是起到监视作用 而且MESSAGEBOX都拦不住 阅读全文

posted @ 2011-08-12 19:11 我要穿越 阅读(378) 评论(0) 推荐(0)

摘要:摘译自Win32 Hooks 作者:Kyle Marsh 本文描述钩子及其子MS Win32应用编程接口中的使用,讨论钩子函数、 过滤函数、以及以下类型的钩子: WH_CALLWNDPROC WH_CBT WH_DEBUG WH_FOREGROUNDIDLE WH_GETMESSAGE WH_JOURNALPLAYBACK WH_JOURNALRECORD WH_KEYBOARD WH_MOUS... 阅读全文

posted @ 2011-08-12 14:00 我要穿越 阅读(2410) 评论(1) 推荐(0)

摘要:这2个函数都是强制退出线程和进程 最大的特点是 不会返回 进去就出不来了 如果终结主线程 比如在主线程中C/C++申请对象 得不到正确的释放 应该调用_endthreadex 在线程内申请的局部变量 不会析构 核心编程EXITPROCESS Code#include <iostream.h>#include <process.h>#include <stdlib.h>#include <windo... 阅读全文

posted @ 2011-08-09 22:36 我要穿越 阅读(243) 评论(0) 推荐(0)

摘要:在做DWORD与 CString 比较的时候 ,需要将CString 转换成 DWORD,有几种转换方法,但是明明转换结果是一样的,可就是提示不相等,后来 _tcstoul()转换后才相等 ,记录下 CString str = lp->GetSubItem(nCol); // MessageBox(str,m_strItem,MB_OK); DWORD dwData = _tcstoul( ... 阅读全文

posted @ 2011-08-08 23:09 我要穿越 阅读(3098) 评论(0) 推荐(1)

摘要:分区 X86 32位windows 空指针区 0x00000000-0x0000FFFF(65535) 用户模式分区 0x1000-0x7FFEFFFF 64KB进入分区 0x7FFF0000-0X7FFFFFFF 空指针区是为了捕获空指针 少于FFFF(65535)的也会异常 不单单是零 阅读全文

posted @ 2011-08-08 08:59 我要穿越 阅读(976) 评论(1) 推荐(0)

摘要:本想早点写完 没想到 搞了这么久 到现在还没明白为啥 我多线程同时读取一个文件 不用对象 为啥就不行呢 哎 杯具啊 睡觉去鸟 阅读全文

posted @ 2011-08-05 23:26 我要穿越 阅读(102) 评论(0) 推荐(0)

摘要:问题解决!如下所示,自己手工添加的映射函数不要写到注释行中间。添加到后面即可 //{{AFX_DATA_INIT(CAssessweightPage) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT DDX_Text(pDX, IDC_EDIT1, aifa[0]); DDX_Text(p... 阅读全文

posted @ 2011-08-05 21:46 我要穿越 阅读(277) 评论(0) 推荐(0)

摘要:主线程退了 程序就退了 进程内资源对象 大部分是属于进程的 线程只有窗口和钩子是 属于线程的 线程结束了 这2个会给自动卸载 Threadid = GetExitThreadid() 线程ID = GetWindowThreadProcessId(findwindow(“计算机”,进程ID); 同步问题 核心编程上分为2种 一种就是用户模式的 就是进程内同步 不涉及到内核对象 一种是内核对象同步... 阅读全文

posted @ 2011-08-04 22:57 我要穿越 阅读(194) 评论(0) 推荐(0)

摘要:效率依然不高。。。。 看书3小时 看看能总结出来啥 句柄表的设计应该算是一种保护 为了不让用户直接操作对象 而选择一种中转得方式 写个伪代码吧 建立文件对象(参数)// Createfile { 文件内核对象 = 内核建立文件对象(参数); 文件句柄 = 分配一个句柄(文件内核对象);//这里说是一个3层的表的 A[255][255][255] return 句柄 } //如果直接返回文... 阅读全文

posted @ 2011-08-04 01:08 我要穿越 阅读(291) 评论(0) 推荐(0)

摘要:DLL的加载分为 显示和隐式 调用 1 隐式调用是包含DLL导出LIB 然后调用其中的导出函数 才会发生隐式调用 也就是说如果没有发生调用 即使包含也不会发生隐式调用。 链接阶段,动态链接库的LIB 就相当于一个编译单元(obj),不过他不是他自己的代码嵌入到EXE中 而是在把需要调用函数信息(包括在那个DLL中)写入到EXE的导入表中。注 个人理解 不一定太对 不可全信 程序DLL 和EXE... 阅读全文

posted @ 2011-08-02 23:52 我要穿越 阅读(282) 评论(0) 推荐(0)

摘要:今天上课说了 在DLL里如果NEW出来一个变量的话 当在其他模块中调用这个变量 并申请空间 这样会发生错误 分配空间的时候会检查当前申请的空间变量时候在当时的模块生成的???神马。。。 中会使用new --> HeapAlloc申请堆空间 //当delete地址的时候 //会检查当前模块是否和申请时候的模块一致 NEW的时候是在主线程模块中 而DLETE的时候在变量所在模块中 因为代码... 阅读全文

posted @ 2011-08-02 22:57 我要穿越 阅读(173) 评论(0) 推荐(0)

摘要:CodeBOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/){ if (dwReason == DLL_PROCESS_ATTACH) { BOOL bResult = FALSE;#ifdef _AFXDLL // wire up resources from core DLL AfxCoreInitModule();#endif _AFX_THREAD_STATE* pState = AfxGetThreadState(); AFX_MODULE_STATE* pPrevModStat 阅读全文

posted @ 2011-08-02 20:21 我要穿越 阅读(687) 评论(1) 推荐(0)

摘要:Windows 用来定位 DLL 的搜索路径 通过隐式和显式链接,Windows 首先搜索“已知 DLL”,如 Kernel32.dll 和 User32.dll。 Windows 然后按下列顺序搜索 DLL: 在没有指定却对路径时 1 当前进程的可执行模块所在的目录。(指定的目录) 2 当前目录。 (进程的目录) 3 Windows 系统目录。 GetSystemDirectory 函... 阅读全文

posted @ 2011-08-01 17:43 我要穿越 阅读(465) 评论(0) 推荐(1)

摘要:DLL是一组源代码模块,每个模块提供程序一些功能。 DLL 不能拥有资源 在它的模块中申请的资源对象归线程所有 如果DLL 被freelibrary(),对象不会被卸载。 但线程卸载,资源就会被释放。DLL的建立.h文件 包含导出的函数静态库编译器会编译器包含符号表和代码动态库编译器会生成个小体积的LIB文件 它不包含代码 只有符号表 代码在DLL中__declspec(dllimport)__declspec(dllexport)隐式调用通过包含LIB 文件或静态LIB文件,在程序连接的时候会产生导入表的一些信息。当程序运行的时候会先载入导入表中的需要的DLL这个是深度优先的算法。初始化完. 阅读全文

posted @ 2011-08-01 15:54 我要穿越 阅读(374) 评论(0) 推荐(0)

导航