首页 上一页1下一页尾页

    设计模式 享元模式(Flyweight)

意图

运用共享技术有效地支持大量细粒度的对象。典型的享元模式的例子为文书处理器中以图形结构来表示字符。一个做法是,每个字型有其字型外观, 字模 metrics, 和其它格式资讯,但这会使每个字符就耗用上千字节。取而代之的是,每个字符参照到一个共享字形物件,...

    Windows Phone 录制音频和保存录音开发

Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。2010年10月11日晚上9点30分,微软公司正式发布了智能手机操作系统Windows Phone,同时将谷歌的Android和苹果的IOS列为主要竞争对手。2011年2月,诺...

    VC++中关于TCHAR,WCHAR,LPSTR,LPWSTR,LPCTSTR的解释

许多VC++ 程序员对于像TCHAR,LPCTSTR这样诡异的标识符感到非常迷惑。今天,我将尝试简短的把这团迷雾解释清楚。

    如何获取某个进程的主窗口以及创建进程的程序名?

在编写工具程序以及系统管理程序的时候。常常需要获取某个进程的主窗口以及创建此进程的程序名。获取主窗口的目的是向窗口发送各种消息。获取启动进程的程序名可以控制对进程的操作。但是有些进程往往有多个主窗口。你要的是哪一个主窗口呢?如果你用过Outlook程序,...

    WINDOWS干干净净杀死进程编程

最近在写程序时碰到这样一个问题:我想将文件备份到网络驱动器上,但是有一些文件正在被其它程序使用,处于打开状态,而且是被独占打开,这时是没法对文件进行备份操作的。因此,要想备份这些文件,必须将打开它们的那些进程kill掉。那么如何干净地杀死这些打开文件...

    C语言Linux下的多线程编程

1?引言
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统 的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被...

    C#里面比较时间大小三种方法

1。比较时间大小的实验
string st1="12:13";
string st2="14:14";
DateTime dt1=Convert.ToDateTime(st1);
DateTime dt2=Convert.ToDateTime(st2);
DateTime dt3=DateTime.Now;
if(DateTime.Compare(dt1,dt2)>0)
msg.Text=st1+">"+st2;
else
...

    C#中通过设置钩子监视鼠标移动

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsApplication1
...{
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
private void Form1_Load(object se...

    编写控制面板应用程序

  当我们打开控制面板时,会看到一些控制面板项目,如“添加/删除程序”、“调制解调器”、“系统”等。我们经常需要通过这些项目来对Windows进行配置。还有一些软件,如雅马哈声卡的驱动程序,会在控制面板中增加自己的配置项目。使用C++Builder 能方便快速地开...

    在Visual C++中用ADO进行数据库编程

  ActiveX数据对象(ADO)是OLE DB上面的高层数据库API。我们在C++程序中也可以调用ADO。本文将在VC 6.0环境下做一个小小的例子解释如何使用ADO。

1. 生成应用程序框架并初始化OLE/COM库环境

创建一个标准的MFC AppWizard(exe)应用程序,然后在应用程序类...

    Windows文本框星号密码查看器

1、? 设计原理:注册一个系统级鼠标挂钩,通过监测系统鼠标所在Windows窗口来获取密码,成功获取密码之后,通过发送自定义的Windows系统消息,到宿主程序。
2、? Hook动态链接库设计原理:采用Windows Hook技术[鼠标挂钩],切入远程进程内部,并监测当前...

    彻底搞定C指针-指向另一指针的指针

一. 回顾指针概念:
早在本系列第二篇中我就对指针的实质进行了阐述。今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧!
当我们程序如下申明变量:
short int i;
char a;
short int * pi;
程序会在内存某地址空间上为各变量开...

    总结windows下堆溢出的三种利用方式(2)

的数据所指向的地址。我们可以控制这两个数据。
可见第二种方式的前提有三个:
1)构造堆(buf2)的flag必须含有HEAP_ENTRY_BUSY和HEAP_ENTRY_VIRTUAL_ALLOC,可以设成0xff
2)构造堆的flag前面那个字节要比0x40小
3)构造堆的上一个堆(即buf1)的长度必须大于或等...

    总结windows下堆溢出的三种利用方式(1)

main (int argc, char *argv[])
{
char *buf1, *buf2;
char s[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaax03x00x05x00x00x01
x08x00x11x11x11x11x21x21x21x21";

buf1 = (char*)malloc (32); /* 分配两块内存 */
memcpy (buf1, s, 32+16); /* 这...

    二叉树的创建、前序遍历、中序遍历、后序遍历

#include "stdafx.h"
#include "stdlib.h"

#define? MAX_NODE 100
#define? NODE_COUNT1 8
#define? NODE_COUNT2 15

int TreeValue0[NODE_COUNT1][2] = {{'0',0},{'D',1},{'B',2},{'F',3},{'A',4},{'C',5},{'E',6},{'G',7}};
int TreeValue...

    顺序队列基本操作

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#define? SMALL 1

#if(SMALL)
?#define MAX 7
?int QueueData[MAX] = {'A','B','C','D','E','F','G'};
#else
?#define MAX 14
?int QueueData[MAX] = {'A','B','C'...

    二叉树创建及遍历算法(递归及非递归)

//二叉树处理头文件
//包括二叉树的结构定义,二叉树的创建,遍历算法(递归及非递归),
/*
?作者:成晓旭
?时间:2001年10月7日(18:49:38-20:00:00)
?内容:完成二叉树创建,二叉树的前,中,后序遍历(递归)
?时间:2001年10月7日(21:09:38-22:0...
首页 上一页1下一页尾页