Windows
爆豆
这个作者很懒,什么都没留下…
展开
-
多线程中的事件对象
与互斥对象类似,事件对象也是一种内核对象,有人工重置和自动重置的区别,一般说来,想要线程同步的话,最好是设置成自动重置的好,可以这样理解;自动重置的对象是被操作系统照顾的,当有线程得到事件对象后,对象就被变成无信号状态了,线程执行过后,系统还是让它无信号,很多管理、回收的问题系统自动就在做了;人工重置就需要我们显示的去改,系统就不会插手管了。CreateEvent 函数创建、打开一个时间对象,原创 2012-12-01 21:35:19 · 535 阅读 · 0 评论 -
21世纪的文件系统:概述WindowsNT 5.0文件系统(NTFS)(三)
原文地址: http://www.microsoft.com/msj/1198/ntfs/ntfs.aspx加密数据流加密是NTFS 5.0的又一个新功能,它可以保护你的数据免受那些对机器有物理访问的用户的侵扰。当单个机器共享多人时,你的电脑被偷了,或者你讨厌的同事在你的电脑上乱搞时,加密可以保护你的数据。然而加密不能阻止其他人访问你的文件,它做的是阻止文件流的内容被他人所理解。翻译 2013-12-04 22:31:52 · 3142 阅读 · 0 评论 -
21世纪的文件系统:概述WindowsNT 5.0文件系统(NTFS)(二)
原文地址:http://www.microsoft.com/msj/1198/ntfs/ntfs.aspx硬链接想象一下你有一个头文件,所有程序项目里都要包含它。每次你创建了新的Visual c++工程,你要把这个头文件拷贝到新工程的源代码目录下,把头文件添加到你的工程,然后编译工程。这里有两个问题:如果你硬盘上有大量的工程项目,意味着你要大量的四处拷贝这个头文件;每一份拷贝都要占据宝贵的翻译 2013-12-04 22:28:41 · 1825 阅读 · 0 评论 -
DUILIB界面库出现控件问题的解决
我自己在duilib界面学习的时候,发现了UIDesign这个工具有时候和“DUIlib属性列表.xml”里的属性值并不一致,大家在用工具拖拽控件后发现控件不显示,没有效果的话可以参照DUIlib属性列表.xml里面的值严格的对比一下,这个时候UIDesign工具不一定可靠。记住!原创 2014-02-06 22:15:05 · 1076 阅读 · 0 评论 -
DUILib 中的通知事件
原文链接:http://www.cppblog.com/fanze/archive/2013/01/08/197125.htmlDUILib 中的通知事件CTabLayoutUI tabselect 调用SelectItem选择了某一项时通知。CActiveXUI showactivex转载 2014-02-07 17:29:37 · 2271 阅读 · 0 评论 -
CreateDirectory(…)执行失败,GetLastError()返回错误码5
{ DeleteDirectory(strPath); if(!CreateDirectory(strPath,NULL)) { DWORDdwError=GetLastError(); ... }}最近帮测试部门写了一个模拟http并转载 2014-05-21 20:20:30 · 5789 阅读 · 0 评论 -
win32 单实例程序运行-无窗口程序也可
在main(WinMain、tWinMain)函数之前做一个数据共享段:#pragma data_seg("Shared") int volatile g_lAppInstance = 0; #pragma data_seg() #pragma comment(linker,"/section:Shared,RWS")在进入到主函数中对那个变量做判断:if (0 == g_原创 2015-03-06 09:03:26 · 1248 阅读 · 0 评论 -
Hook Socket API之后改变http报文头数据篡改send内容
socket库中的send和recv函数在被自定义的hook函数监视劫持后,想把send发送过程的http报文头里目标网站篡改,虽然把host:的域名替换了,但是结果浏览器显示的效果是请求被服务器禁止了,错误代码403,这时,WireShark显示的http数据中目标IP地址仍然是未篡改网站的IP,也就是说,我一直在向它请求另一个网站的数据,服务器自然会禁止我的非法请求。那么,不光要hook住se原创 2013-08-10 09:25:43 · 9775 阅读 · 1 评论 -
FindFirstFile、FindNext递归遍历硬盘的文件
原文地址:http://hi.baidu.com/littlestupid/item/f87dbeb25d37b394194697df#include #include using namespace std;bool Search(char *Path,char *File);bool main(){ Search("D:","2.txt"); retu原创 2014-01-11 21:55:52 · 5032 阅读 · 0 评论 -
MFC 改变窗口类名
MFC 改变窗口类名1,改变窗口类名:比如:MyClassName是自己想设置的类名方法:打开资源视图,右击外挂窗口,属性改掉ClassName属性,若它为灰色,右击.rc文件改mfc Mode属性为false,再改2,改变后在CTestCpp中的InitInstance()注册该窗口类名WNDCLASS wc;// 获取窗口类信息。MFC默认的所有对话框的窗口类名为原创 2015-01-23 20:43:26 · 678 阅读 · 0 评论 -
解决“指定的服务已经标记为删除”问题
在注册自己写的服务时,再使用 "sc delete 服务器名称" 命令删除服务就出现“指定的服务已经标记为删除”的异常。刚开始感觉很奇怪,因为在网上查到别人都是那么删除windows服务的。在一次偶然情况,我关闭了服务管理窗口,问题自然解决了。因此,出现上述原因是运行删除服务项命令的时候,服务管理窗口未关闭引起的。果然是 services.msc窗口的问题原创 2013-09-18 08:48:50 · 6892 阅读 · 0 评论 -
密切关注你的NTFS驱动器(一):Windows 2000 下更改日志的讲解
原文地址: http://www.microsoft.com/msj/0999/journal/journal.aspx.Windows 2000 更改日志是每一个NTFS 5.0卷所有文件或目录的所有变化的链表数据库。每一卷都有各自的更改日志数据库,库中包含了反映卷中文件和目录发生变化的记录。Windows 2000 充满了各种新奇、令人振奋的技术,更改日志就是其中一个。翻译 2013-12-05 23:21:27 · 5735 阅读 · 3 评论 -
win32与winCE下MFC背景贴图、静态文字背景透明
背景贴图:void CmyDlg::OnPaint(){#if defined WINCE#else OutputDebugStringA("onpaint");#endif CPaintDC dc(this); // device context for painting CRect rect; GetClientRect(&rect); CDC dcMem; dcMe原创 2014-06-30 13:57:46 · 2300 阅读 · 0 评论 -
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call
动态加载dll后,执行导出的C API发生运行时错误:Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling conv转载 2015-08-24 21:03:49 · 1041 阅读 · 0 评论 -
win8和win10下,visual studio 2008 调试出现无响应的卡死问题解决
出现该问题是因为安装了中文的输入法,而没有类似‘英文(美国)’‘英文(英国)’这样的键盘,在控制面板里 语言 功能,把语言类型加上English就好了。原创 2015-10-04 13:28:37 · 5425 阅读 · 7 评论 -
21世纪的文件系统:概述WindowsNT 5.0文件系统(NTFS)(一)
原文地址: http://www.microsoft.com/msj/1198/ntfs/ntfs.aspx单个文件的所有属性(包括它的数据属性)都在存储着,正是因为NTFs存储着文件属性。这一点在访问小型文件的时候提高了性能。在文件目录条目中NTfs同样存放着一个文件最常用的属性。翻译 2013-12-04 22:08:57 · 2152 阅读 · 0 评论 -
密切关注你的NTFS驱动器(二):创建一个更改日志的应用程序
原文地址:http://www.microsoft.com/msj/1099/journal2/journal2.aspxNTFS卷里的更改日志可以是激活或是禁止状态的。如果是激活状态,DeviceIoControl函数返回真,任何的应用都可以在其禁止时将其激活。系统可以非常快的执行这个操作。上个月我们介绍了每个NTFS卷里更改日志可以是激活或禁止的。翻译 2013-12-08 15:19:16 · 5471 阅读 · 2 评论 -
Windows多线程中的互斥对象
互斥对象,顾名思义,就是有互相排斥的意思,拥有它的线程是排斥其他线程的,拥有它的进程也是排斥其他进程的。HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes,BOOL bInitialOwner,LPCTSTR lpName),创建或者打开一个命名或匿名的互斥对象,第一个参数使用空值,使用默认的安全性;第原创 2012-12-01 19:13:25 · 673 阅读 · 0 评论 -
Winsock异步----select模型的前前后后
首先看阻塞、非阻塞这两个概念,阻塞是特定的IO函数(象send recv)不会立即返回,在等待返回的这段时间应用程序被阻塞、挂起,IO操作完成之后程序恢复正常;非阻塞不同的情况就是等待IO操作返回时,程序可以做些其他的事情,但这也是比较低效的切换了。套接字创建时默认是在阻塞模式下的,在这种情况下,一个客户端,即一个连接,就要对应一个线程,服务器连接多少个客户端,就要有多少个线程,客户之间没有影原创 2012-12-07 11:09:08 · 1616 阅读 · 0 评论 -
Winsock异步IO----select模型
Winsock异步IO模型中的SELECT选择模型是比较轻巧 可以用在偏小型的网络程序,核心就是select 函数,利用select 可以判断特定的socket是否有可读的数据,能不能向某个套接字进行写入数据,防止程序在Socket处于阻塞模式中时,在一次 I/O 调用(如send或recv、accept等)过程中,被迫进入“锁定”状态;同时防止在套接字处于非阻塞模式中时,产生WSAEWOULDB原创 2012-12-06 21:57:35 · 1038 阅读 · 0 评论 -
使用WSAIoctl获取socket扩展函数(如AcceptEx)的指针
未获取函数指针就调用函数(如直接连接mswsock.lib并直接调用AcceptEx)的消耗是很大的,因为AcceptEx 实际上是存在于Winsock2结构体系之外的。每次应用程序常试在服务提供层上(mswsock之上)调用AcceptEx时,都要先通过WSAIoctl获取该函数指针。如果要避免这个很影响性能的操作,应用程序最好是直接从服务提供层通过WSAIoctl先获取这些APIs的指针。原创 2012-12-12 12:09:00 · 3375 阅读 · 0 评论 -
无法打开“windows.h”文件、无法打开“kernel32.lib”文件解决方法
无法打开“windows.h”文件的解决做法:在VS2008下的option--VC++目录--添加包含文件路径中,添加windows SDK目录,例如这个,C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include,即可;无法打开“kernel32.lib”文件的解决方法:kernel.lib该文件在C:\Program Files\M原创 2013-03-20 17:53:39 · 7332 阅读 · 0 评论 -
using vs2008 occurs this phenomenon:this project is out of date,bla bla
这种“即使没有修改代码也会重新编译生成”情况的发生,原因就是项目代码中包含了本地不存在的头文件。项目找不到该头文件,就一直会出现这种,不断rebuild的糟糕情况。仔细检查项目,你可能发现自己疏忽在哪。stackoverflow上有这个问题的讨论http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project原创 2013-03-29 16:37:37 · 1102 阅读 · 0 评论 -
GetModuleFileNameA函数和GetCurrentDirectoryA函数的应用
头文件#include C++代码 char moduleFileName[MAX_PATH]; GetModuleFileNameA(0, moduleFileName, MAX_PATH); 取得的路径为:c:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Project转载 2013-08-02 15:41:51 · 7625 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号 __imp___CrtDbgReportW
error LNK2005 and error LNK2019error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function "public: double & __thiscall std::vectorMSVCRT.lib(MSVCR80.dll) : error LNK200转载 2013-08-07 15:39:42 · 1238 阅读 · 0 评论 -
VC++根据域名获取IP地址GetHostByName()
#include #include#pragma comment(lib,"ws2_32.lib")int main (){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD(1,1); err=WSAStartup(wVersionRequested,&wsaData原创 2013-08-10 11:06:41 · 4869 阅读 · 0 评论 -
dll注入项目 F5调试成功但执行exe时失败
dll注入用到的路子是先找到目标进程,获取进程快照,打开该进程(openProcess),在目标进程中分配出内存(VirtualAllocEx),然后写入待注入的dll文件名(WriteProcessMemory),建立远程线程(createdRemoteThread),加载(loadLibrary)待注入的dll,线程执行后,dll就注入到了目标进程里。调试过程中显示可以正常原创 2013-08-10 09:13:04 · 1704 阅读 · 0 评论 -
FindResource函数错误代码:1813-找不到映像文件中指定的资源类型 与LoadResource函数错误代码:1812-指定的映像文件不包含资源区域
函数原型:HRSRC WINAPI FindResource( _In_opt_ HMODULE hModule, _In_ LPCTSTR lpName, _In_ LPCTSTR lpType);关于第一个参数hModule:如果为null,那么该函数就会在当前进程中寻找资源。如果在DLL情况下,该函数不可以为null,要明确待寻找资源的模块位置原创 2013-08-28 19:42:08 · 10659 阅读 · 8 评论 -
Everything研究之快速获取USN记录的文件路径
原文地址:http://univasity.iteye.com/blog/860847继上一篇关于USN的探索,我们能对USN进行了简单的操作,但是有一样基本的东西却没有做到——我们还无法获取到USN记录的文件路径,而这恰恰是非常必要的。 typedef struct {DWORD RecordLength; // 记录长度WORD MajorVersion; //转载 2013-11-23 17:09:55 · 4016 阅读 · 1 评论 -
Everything研究之读取NTFS下的USN日志文件(1)
原文地址:http://univasity.iteye.com/blog/805234;我在第一次使用 Everything 时,对其速度确实感到惊讶,后来了解到是通过操作 USN 实现的,并且有一定的局限性(只有 NTFS 下才能使用)。 近来清闲无事(失业了),搞些自己的小项目玩玩。其中也要处理到本地搜索这块,首先我想到的就是Everything 。 我仔细地将官网和他论坛转载 2013-11-23 17:26:36 · 4509 阅读 · 0 评论 -
Everything研究之读取NTFS下的USN日志文件(2)
原文地址:http://univasity.iteye.com/blog/805235续>>/****************************************** 2010.11.10更新了代码,调整了一处地方,lowUsn的设置。 ******************************************/ 第四步:获取 USN Jour转载 2013-11-23 17:34:15 · 8986 阅读 · 0 评论 -
批处理-快速格式化硬盘(全自动进行)
在bat文件中加这两句:@echo Now initializing the program,please wait a minite...@format h: /q /u /yh:代表盘符;q代表快速格式化;U代表不可恢复;y代表自动进行。在FAT格式盘符上可以全自动进行,NTFS尚未验证过原创 2014-07-20 14:50:15 · 16823 阅读 · 1 评论