随笔分类 -  Win32&MFC

windows应用级开发
摘要:全局分析 【P&S 94】中提到对于类型安全的检测来说有两种假设。一种是封闭式环境下的假设,此时程序中的各个部分在编译期间就能被确定,然后我们可以对于整个程序来进行类型检测。另一种是开放式环境下的假设,此时对于类型的检测是在单独的模块中进行的。对于实际开发和建立原型来说,第二种假设显得十分有效。然而,【P&S 94】中又提到,“当一种已经完成的软件产品到达了成熟期时,采用封闭式环境下的假设就可... 阅读全文
posted @ 2007-09-28 12:33 至尊王者 阅读(264) 评论(0) 推荐(0) 编辑
摘要:以下文章翻译自Ian Joyner所著的 《C++?? A Critique of C++ and Programming and Language Trends of the 1990s》 3/E【Ian Joyner 1996】 该篇文章已经包含在Ian Joyner所写的《Objects Unencapsulated 》一书中(目前已经有了日文的翻译版本),该书的介绍可参见于: http:... 阅读全文
posted @ 2007-09-28 12:33 至尊王者 阅读(524) 评论(0) 推荐(0) 编辑
摘要:在PALM中﹐每台PDA都有唯一的ID碼﹐我想在WINCE中也應該有類似的ID碼﹐但如何在程序中獲取該ID碼﹖ 阅读全文
posted @ 2007-09-26 12:07 至尊王者 阅读(1342) 评论(2) 推荐(0) 编辑
摘要:1 HWND deskton; 2 DWORD desktonID; 3 HANDLE hProc; 4 5 deskton = FindWindow("Progman", "Program Manager"); 6 GetWindowThreadProcessId(deskton,&desktonID); 7 hProc = Op... 阅读全文
posted @ 2007-09-26 12:01 至尊王者 阅读(1295) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 3 class CMyWinApp:public CWinApp 4 { 5 public: 6 BOOL InitInstance() 7 { 8 CFrameWnd *pwin=new CFrameWnd; 9 m_pMainWnd=pwin; 10 pwin->Create(0,_T("Hello"));... 阅读全文
posted @ 2007-09-25 11:15 至尊王者 阅读(573) 评论(0) 推荐(0) 编辑
摘要:TEA(Tiny Encryption Algorithm) 是一种简单高效的加密算法,以加密解密速度快,实现简单著称。算法真的很简单,TEA算法每一次可以操作64-bit(8-byte),采用128-bit(16-byte)作为key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮。目前我只知道QQ一直用的是16轮TEA。没什么好说的,先给出C语言的源代码(默认是32轮): 1 voi... 阅读全文
posted @ 2007-09-25 11:05 至尊王者 阅读(1702) 评论(1) 推荐(1) 编辑
摘要:1. IntroductionMD5算法是一种消息摘要算法(Message Digest Algorithm),此算法以任意长度的信息(message)作为输入进行计算,产生一个128-bit(16-byte)的指纹或报文摘要(fingerprint or message digest)。两个不同的message产生相同message digest的几率相当小,从一个给定的message dige... 阅读全文
posted @ 2007-09-25 11:04 至尊王者 阅读(44534) 评论(7) 推荐(4) 编辑
摘要:前段时间学习Windows程序设计,刚好学到Win32 Service,于是写了两个简单的类:BaseService和ServiceCtrl。虽然功能比较简单,但是也能适用于大多数情况。 阅读全文
posted @ 2007-09-25 10:57 至尊王者 阅读(531) 评论(0) 推荐(0) 编辑
摘要:大家知道,Windows NT/2000为实现其可靠性,严格将系统划分为内核模式与用户模式,在i386系统中分别对应CPU的Ring0与Ring3级别。Ring0下,可以执行特权级指令,对任何I/O设备都有访问权等等。要实现从用户态进入核心态,即从Ring 3进入Ring 0必须借助CPU的某种门机制,如中断门、调用门等。而Windows NT/2000提供用户态执行系统服务(Ring 0例程)的此类机制即System Service的int 2eh中断服务等,严格的参数检查,只能严格的执行Windows NT/2000提供的服务,而如果想执行用户提供的Ring 0代码(指运行在Ring 0权限的代码),常规方法似乎只有编写设备驱动程序。本文将介绍一种在用户态不借助任何驱动程序执行Ring0代码的方法。 阅读全文
posted @ 2007-09-21 09:38 至尊王者 阅读(707) 评论(0) 推荐(0) 编辑
摘要:代码共享如下,在Win2K sp4/WinXP sp2上调试通过。 BOOL CheckFileTrust( LPCWSTR lpFileName ){ BOOL bRet = FALSE; WINTRUST_DATA wd = { 0 }; WINTRUST_FILE_INFO wfi = { 0 }; WINTRUST_CATALOG_INFO wci = { 0... 阅读全文
posted @ 2007-09-20 14:30 至尊王者 阅读(3890) 评论(0) 推荐(1) 编辑
摘要:根据文件句柄,获取文件名 #include #include #include #include #include #define BUFSIZE 512 BOOL GetFileNameFromHandle(HANDLE hFile) { BOOL bSuccess = FALSE; TCHAR pszFilename[MAX_PATH+1]; HANDLE ... 阅读全文
posted @ 2007-09-20 00:44 至尊王者 阅读(679) 评论(0) 推荐(0) 编辑
摘要:#include "stdafx.h"#include #include int mul(int num,int data1,){ int total = data1; int arg,i; va_list ap; va_start(ap,data1); for(i=1;ivoid myprintf(char* fmt, ) //一个简单的类似于pri... 阅读全文
posted @ 2007-09-04 21:55 至尊王者 阅读(485) 评论(0) 推荐(0) 编辑
摘要:1#define PROTECTED_DACL_SECURITY_INFORMATION (0x80000000L) 2 3BOOL Lock_CurrentProcess() 4{ 5 HANDLE hProcess = ::GetCurrentProcess(); 6 SID_IDENTIFIER_AUTHORITY sia = SECURITY_WORLD_SID_AUTHORIT... 阅读全文
posted @ 2007-08-22 09:43 至尊王者 阅读(782) 评论(0) 推荐(0) 编辑
摘要:[代码] 阅读全文
posted @ 2007-08-22 09:41 至尊王者 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 键盘操作相对于鼠标操作,更加快捷、方便、准确。我先从基础操作讲起,然后是进阶操作,再是更精细的操作。 阅读全文
posted @ 2007-08-14 15:34 至尊王者 阅读(577) 评论(0) 推荐(0) 编辑
摘要:1.求下面函数的返回值(微软)int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。2. 什么是“引用”?申明和使用“引用”要注意哪些问题?答... 阅读全文
posted @ 2007-08-14 15:32 至尊王者 阅读(369) 评论(1) 推荐(0) 编辑
摘要:来源:http://www.azure.com.cn/article.asp?id=325一、引言计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简单的通用解决方案,比如几何问题。作为计算机科学的一个分支,计算几何主要研究解决几何问题的算法。在现代工程和数学领域,计算几何在图形学、机器人技术、超大规模集成电路设计和统计等诸多领域有着十分... 阅读全文
posted @ 2007-08-14 15:29 至尊王者 阅读(1093) 评论(0) 推荐(0) 编辑
摘要:Windows是安全的,不安全的是我们想当然的作风! 阅读全文
posted @ 2007-08-14 15:26 至尊王者 阅读(306) 评论(0) 推荐(0) 编辑
摘要:当我们在做一些管理平台类的程序(比如Windows的任务管理器)时,往往需要限制程序只能打开一个实例。解决这个问题的大致思路很简单,无非是在程序打开的时候判断一下是否有与自己相同的进程开着,如果有,则关闭自身,否则正常运行。 但是,问题就出在如何判别是否有一个与自己相同的进程开着上面。我在网上搜索了一下相关的文章,发现对于这个问题的解决不外乎以下几种方式: 1、在进程初始化时使用::Cre... 阅读全文
posted @ 2007-07-14 13:36 至尊王者 阅读(1120) 评论(0) 推荐(0) 编辑
摘要:在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数。... 阅读全文
posted @ 2007-07-14 13:32 至尊王者 阅读(317) 评论(0) 推荐(0) 编辑