Windows编程
文章平均质量分 66
cmdhack
这个作者很懒,什么都没留下…
展开
-
windows API编程之四----模式对话框和非模式对话框的区别
一、 创建的区别在WIN32中,模式对话框的创建一般是使用DialogBox来进行创建的。而非模式对话框则是利用CreateWindow来创建的。在MFC或是WTL中,模式对话框一般是使用DoModal,而非模式对话框的创建则是使用Create。模式对话框创建后,程序的其他窗口便不能进行操作,必须将该窗口关闭后,其他窗口才能进行操作。而非模式对话框则无需这样,它不强制要转载 2010-04-08 23:34:00 · 1623 阅读 · 0 评论 -
Dll小结-->基础部分
DLL总结1:Dll内存比如system32下有Dll.dll一份 A调用Dll.dll的时候 物理内存中会有且只有一份该dll的内存映射 然后将dll的内存通过“虚拟地址到物理地址的一种映射机制”将他们映射到A的4G虚拟内存中的一部分内存中 当再有B调用该Dll.dll的时候 仍然会将dll的内存映射到B的虚拟内存地址中 不过这个时候需要注意的是 AB 共享代码区 而原创 2010-05-18 16:14:00 · 451 阅读 · 0 评论 -
OpenThread的调用
在VC6.0中使用HANDLE OpenThread(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwThreadId );时不能直接调用 因为其虽然在存在于kernel32.dll 在MSDN中声明Requirements Windows NT/2000/XP: Included in Windows 200原创 2010-05-19 18:33:00 · 6016 阅读 · 2 评论 -
线程同步-用内核对象进程线程同步
线程同步的几种方法一 : 使用内核对象1:事件对象事件对象分为两种 当一个手动重置事件对象被触发时 正在等待该事件的素有线程都将变成可调度的状态( 一旦有信号被触发 则 所有等待线程都将往下执行)而当一个自动重置事件对象被触发的时候,只有一个证在等待该事件的线程会变成可调度状态(一旦有信号被触发,只有一个等待线程会往下执行 再有信号被触发时 会再有另外一个线程往下执行)原创 2010-05-19 20:50:00 · 641 阅读 · 0 评论 -
提升进程权限
//提升进程权限 //1OpenProcessToken 得到调整进程的访问令牌 ::OpenProcessToken //2LookupPrivilegeValue 去的描述指定特权的LUID ::LookupPrivilegeValue //3AdjustTokenPrivileges调整进程的权限 ::AdjustTokenPrivileges原创 2010-05-18 22:49:00 · 688 阅读 · 0 评论 -
【LIUNX】---TCP/IP学习与实践[基于原始套接字的rootkit]
前几天看了看>第一卷,为了加深理解,便写了几个简单的程序,最近好忙,但是又怕忘记前面所学的知识,就粗糙的整理了一下,贴出来,希望能给初学者以指导,同时借助CU的论坛做个备份,呵呵.内容安排:1.原始套接字介绍 1.1 原始套接字工作原理与规则 1.2 简单应用2 FTP密码窃取器实现(简单的rootkit) 2.1 设计思路 2.2 实现 2.3 不足与改进之处开始,嗯,喝口茶水先...转载 2010-05-20 15:01:00 · 765 阅读 · 0 评论 -
关于GetDIBits的使用 抓狂搞了1整天 备注待查
HBITMAP是常用的GDI对象,而GetDIBits可以从一个HBITMAP对象中获得其对应的位数据。其原型如下:int GetDIBits( HDC hdc, // handle to DC hdc, // handle to DC HBITMAP hbmp, // handle to bitmap原创 2010-05-27 20:16:00 · 21864 阅读 · 0 评论 -
"未预期错误" 小问题大麻烦
<br />在写一个服务器程序的时候刚开始还好 后来换了一个图标之后就不断弹出"未预期错误"<br /> <br />baidu下发现原来是32位位图在16位下不能识别,故发生该错误<br /> <br />设置-->颜色质量-->修改为匹配的原创 2010-12-25 23:54:00 · 4388 阅读 · 1 评论 -
控制台程序安装全局钩子
今天在写一个程序的时候发现的问题,在以前的学习过程中没有遇到过,所以记录以备后查程序大致是这样的 A:主程序 控制台程序 负责安装一个WH_KEYBOARD_LL钩子,其中钩子的安装于回调函数在Hook.Dll中B:目标程序 窗体程序怎么操作都不行,Hook.dl可以确定没有任何差错,dll的调用以及SetHook都可以调用,就是回调函数来不了后来经过不断调试发现,原来钩子是依靠的消息响应机制,所以必须要有消息响应才可以所以务必要添加上 MSG msg; DWORD ret; while (r原创 2011-01-12 19:15:00 · 3515 阅读 · 3 评论 -
关于dll头文件宏声明
为何要在dll开发中 dll.h中利用预定义声明如下宏#ifdef _DLLMODULENAME_#define DLLMODULENAME_LIB_API __declspec(dllexport)#else#define DLLMODULENAME_LIB_API __declspec(dllimport)#endif 解释:首先所有的导出函数在定义的时原创 2010-05-06 10:18:00 · 757 阅读 · 0 评论 -
【视图分割】使用VC6.0实现窗口的任意分割
一、关于CSplitterWnd类我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的转载 2010-04-29 23:22:00 · 1256 阅读 · 0 评论 -
【MFC】文档类、子框架类及视图类的关系及如何相互调用
了解文档和视图的相互作用关系是编写MFC程序的基本功。但是MFC的应用程序框架把文档和视图之间的关系封装了起来,初学的朋友往往不得要领,因此写程序往往被局限于在用向导生成的框架中。本文希望能够尽可能说明白文档视图框架之间是如何进行作用,希望能给一些朋友带来小小的帮助。 几个概念: (虽然大家都知道了,雷神还是要重申一次) 文档对象:是用来保存数据的。 视图对象:是用原创 2010-04-21 00:31:00 · 1961 阅读 · 0 评论 -
TCHAR、_T与_TEXT
计算机最初使用的不是UNICODE,最初的系统和程序都采用的是ANSI或者MBCS,那么,问题来了:我们开发程序的时候,是采用char还是wchar_t?观察如下代码:char msg[] = "学习C++"; 当我们准备采用wchar_t时,则需要改成:wchar_t msg[] = L"学习C++"; 太麻烦了!幸运的是,Visual C++的开发者预知到了这样的麻烦,他们从而原创 2010-04-11 17:46:00 · 465 阅读 · 0 评论 -
windows API编程之二----控制台模拟Win32程序
#include #define WINAPI __stdcall#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name#define CONST const#define MB_OKCANCEL原创 2010-04-01 21:56:00 · 1152 阅读 · 0 评论 -
windows API编程之一----MBCS与Unicode码制分析
本文并不打算讲解Unicode的编码问题,因为本文主要对以下几个问题提一些见解:1. MBCS多字节码的原理?2. MBCS与Unicode的关系?3. MBCS与Unicode的转换?4. MBCS与Unicode的打印,乱码解决?1:早在Windows采用Unicode统一编码进行语言管理之前,Windows为了能够进行非ANSI标准字符的输出,于是采用两个字节来表示这些语言文字。因为原创 2010-04-01 17:29:00 · 643 阅读 · 0 评论 -
对话框处理TAB按键事件的三种方法
对话框(Dialog)分为模态对话框和非模态对话框(Modeless Dialog)。非模态对话框不能处理TAB键、快捷键等按键事件,也就是说用户不能在非模态对话框中通过按TAB键切换各控件之间的焦点(Focus)。但这也不是没有解决办法的。方法一在MSDN中,让非模态对话框处理TAB按键事件的经典代码如下:HINSTANCE hinst;HWND hwndMain;HWND hw转载 2010-04-14 23:54:00 · 1450 阅读 · 0 评论 -
【MFC】中的ON_COMMAND_RANGE宏
VC++中的ON_COMMAND_RANGE宏和ON_COMMAND等宏一样,是用来声明消息处理函数的,与ON_COMMAND不同的是,此宏可用来定义一组消息的处理函数。两个宏的用法是:ON_COMMAND(id,memberFxn)ON_COMMAND_RANGE(id1,id2,memberFxn)看起来其中memberFxn似乎没有什么差别,但是在学习使用中,发现ON_C转载 2010-04-16 21:06:00 · 1041 阅读 · 0 评论 -
【MFC】消息映射宏
消息映射宏为了支持消息映射,MFC提供了下列宏:消息映射的声明和分界宏DECLARE_MESSAGE_MAP 声明将在一个类中使用消息映射,把消息映射到函数(必须用在类声明中) BEGIN_MESSAGE_MAP 开始消息映射的定义(必须用在类实现中) END_MESSAGE_MAP 结束消息映射的定义(必须用在类实现中) 消息映原创 2010-04-16 21:32:00 · 954 阅读 · 1 评论 -
【MFC】位图操作
SDK方法 /************************************************************************A:首先载入位图 1:通过资源载入LoadBitmap 2:通过文件载入LoadImageB:创建内存画布C:内存画布与位图进行绑定D:利用BitBlt显示位图原创 2010-04-19 16:33:00 · 1640 阅读 · 0 评论 -
【MFC】利用双缓冲技术解决屏闪问题
利用双缓冲技术解决屏闪问题需要注意的还有在利用 Invalidate发送消息的时候Invalidate(FLASE)表示不擦出原来直接开始绘制Invalidate(TRUE)表示将所有的擦出后重新绘制 void CMyCADView::OnDraw(CDC* pDC){ //获得View矩形区域 RECT rect; this->GetClientRect(&re原创 2010-04-20 22:39:00 · 736 阅读 · 0 评论 -
console 多线程
<br />写一个console程序的时候使用了多线程 总是失败<br />原来是编译选项的问题 console程序默认的时候<br />采用的是单线程 <br /> <br />修改<br />C/C++ -> Code Generation -> Use run-time libray:<br /> 进行修改原创 2011-01-27 00:22:00 · 1094 阅读 · 0 评论