12 Gordon_Freeman

尚未进行身份认证

暂无相关简介

等级
TA的排名 19w+

WTL自绘控件(继承COwnerDraw)

1.添加自绘控件类,使其派生自COwnerDraw,例如class MyButtonEx:public CWindowImpl ,public COwnerDraw2.在自绘控件类中添加消息映射CHAIN_MSG_MAP_ALT,例如:CHAIN_MSG_MAP_ALT(COwnerDraw, 1)3.END_MSG_MAP之前要添加DEFAULT_REFLECTION_HAND

2013-11-19 01:10:05

CDHtmlDialog调用网页内部Javascript的两种方法

本文演示了使用COM组件调用网页javascript的两种方法,第一种方法无法获取javascript的返回值,方法比较简单;第二种方法需要MSHTML库的支持,可以获取Javascript的返回值。假设javascript代码如下:function add(str){ var o; o = $("test"); o.innerHTML += "" +

2013-11-19 01:10:03

VC取得COM组件调用失败的错误信息

在VB中,COM组件如果调用失败,Runtime会直接提示错误的信息。在VC++中,COM组件的返回值是HRESULT,通过SUCCEEDED和FAILED宏来判断COM组件是否调用成功。如果想要获取COM组件调用失败的具体信息,可以这样做:(首先应该包括头文件comdef.h)hr = pWindow->execScript(L"add('test');", L"Javascri

2013-11-19 01:10:00

在MASM中使用间接远跳转

; Assemble options needed: none .model large .datajumptable DD routine1 DD routine2 .codestart: MOV ax, @data MOV d

2013-11-19 01:09:58

ModifyMenu的用法

关于这个API,MSDN讲得实在有点晦涩,这里总结一下。假设要更改以下菜单的Disable Sampling项文本为EnableSampling首先应该获取submenu父菜单的句柄,假设submenu的资源ID号为IDR_MENU2,使用以下代码:1 hMenu = LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE

2013-11-19 01:09:56

中缀表达式转换成后缀表达式并求值

算法:中缀表达式转后缀表达式的方法:1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈6.最终将栈中的元素依次出栈,输出。例如a+b*c+(d*e+f)*g --

2013-11-19 01:09:54

简单调用自己写的COM组件

1 #include "../Simple2/Simple2_i.h" 2 #include "../Simple2/Simple2_i.c" 3 4 int _tmain(int argc, _TCHAR* argv[]) 5 { 6 CoInitialize(NULL); 7 8 IUnknown *pUnk; 9 IFunc *pF

2013-11-19 01:09:52

全局重载new运算符

#include #include void* __cdecl operator new( unsigned int size, const char *p, int line){ printf("the file :%s\n", p); printf("the line: %d\n", line); void *ret = malloc(size); return

2013-11-19 01:09:50

Windows驱动开发小练习-Lookaside测试程序

1 ////////////////////////////////////////////////////////////////////////// 2 // Lookaside测试 3 // Lookaside一般在以下情况使用: 4 // 1.每次申请固定大小的内存 5 // 2.频繁申请释放内存 6 7 void LookasideTest() 8 {

2013-11-19 01:09:48

Windows驱动开发小练习-内存分配与链表操作

1 typedef struct _MYDATA 2 { 3 LIST_ENTRY ListEntry; 4 LONG number; 5 }MYDATA, *PMYDATA; 6 7 void LinkedListTest() 8 { 9 LIST_ENTRY head;10 MYDATA *pMyData

2013-11-19 01:09:46

一个简单的WDM驱动程序

1 #ifdef __cplusplus 2 extern "C" 3 { 4 #endif 5 #include // 不同点之一 6 #ifdef __cplusplus 7 } 8 #endif 9 10 typedef struct _DEVICE_EXTENSION 11 { 12 PDEVICE_OBJECT

2013-11-19 01:09:44

C++构造函数中抛出异常要注意

// 以下代码演示了在C++构造函数中抛出异常,但是析构函数却不能被调用的场景。// 所以,在C++构造函数中,既需要分配内存,又需要抛出异常时要特别注意防止内存泄露的情况发生#include "stdafx.h"#include #include #include using namespace std;class test{public:

2013-11-19 01:09:42

Semaphore小测试程序

通过等待函数和ReleaseSemaphore可以确保同一时刻有有限个线程访问指定的资源。以下是一个测试小程序 1 #include "stdafx.h" 2 #include 3 #include 4 5 HANDLE hSemaphore; 6 7 typedef struct _ThreadParam{ 8 char name[100]

2013-11-19 01:09:40

mov edi,edi

mov edi,edi - hook api系统: windows xp查看系统函数的反汇编代码时会发现开头有个"mov edi,edi"(2字节),再往前则是5个nop指令(当然这不会引人注意),可是"mov edi,edi"有什么用了.上网搜索"mov edi,edi",结果让人惊奇,据说系统函数都添加了这段"无用"的代码,为的是Hot Patching,详细内容请自行搜索.通过改

2013-11-19 01:09:38

根据HBITMAP获取位图的尺寸信息

自绘Button时,需要Button表面的位图来动态调整Button的尺寸。而位图是通过LoadBitmap函数载入的,返回的也是一个HBITMAP句柄,所以无法直接获取HBITMAP的尺寸。解决方法是使用GetObject API根据HBITMAP获取BITMAP对象,有了BITMAP对象,就有了位图的文件头、尺寸以及位图数据等信息。BITMAP bmp;HBITMAP hBmp

2013-11-19 01:09:35

VC资源分配、释放表

VC资源分配、释放表资源分配函数清除函数需要手动清除AcceleratorsLoadAcceleratorsN/ANoAtomsGlobalAddAtomGlobalFreeAtomYesBitmaps

2013-11-19 01:09:33

VC listctrl control Get column count

(in a CListCtrl class) HWND hwHeaderCtrl; int nColumnCount; hwHeaderCtrl = (HWND)this->SendMessage(LVM_GETHEADER, 0, 0); if (hwHeaderCtrl != NULL) { nColumnCount

2013-11-19 01:09:31

VC: MBCS字符集转换成UTF-8

// MBCS字符集转换成UTF-8,使用完了之后要释放返回的内存!char* DataStore::MBCS2Utf8(char* szMBCS, ULONG* _out_length){ if (szMBCS == NULL || _out_length == NULL) return NULL; // 方法:先转换成CP_ACP再转换成CP_UTF8 int nLe

2013-11-19 01:09:29

C#使用SOCKET获取ASPSESSIONID、PHPSESSID等Cookie

简单写了一个小类,获取ASPSESSIONID、PHPSESSID等WebClient无法获取的Cookies,如果高手有更好的意见,欢迎补充。代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Net; 5 using System.

2013-11-19 01:09:27

C#使用XmlWriter写入XML文件

XmlWriter 表示一个编写器,该编写器提供一种快速、非缓存和只进的方式来生成包含 XML 数据的流或文件。假设我们要写入以下结构的XML:BookList> Book name="书籍1" id="1" category="计算机"> Book name="书籍2" id="2" category="计算机">BookList>首先使用XmlWri

2013-11-19 01:09:25

查看更多

勋章 我的勋章
    暂无奖章