- 博客(39)
- 资源 (53)
- 收藏
- 关注
转载 (笔记)网络7层协议
TCP/IP协议是传输控制协议/互联网络协议.他规范了网络上所有设备的通信,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式.在网络的各层中还存在着许多协议,下面列出部分网络协议规范: ARP 地址解析协议 SNMP 网络管理协议 BOOTP 让无盘站从一个中心服务器上获得IP地址 DHCP 动态主机配置协议 下面介绍网络7层协议在WIN
2012-12-25 14:23:35
459
转载 U盘进行软件加密
利用U盘进行软件加密的方法 一般的U盘不具备加密的功能,虽然U盘和加密狗外形有一些相似,但是内部完全不一样的,U盘只是一个存储器芯片和简单的附属电路,而现在的智能卡加密狗都具有一个单独的CPU或者加密芯片,可以执行相当复杂的加密算法。 有的软件开发商有这样一种需求,就是使用U盘发布软件的同时,想要节约成本,防止U盘中的软件被复制,但又不想再购买昂贵的加密狗,因此想要把软件绑定在U盘上执行,
2012-12-25 13:22:24
1043
转载 vc++键盘钩子和鼠标钩子
该例的钩子都是写在一个DLL中的,和应用程序独立开来的全局钩子。一般情况下,如果要截获鼠标和普通按键,刚可以用下边的方法鼠标:LRESULT CALLBACK MouseProc( int nCode, // hook code WPARAM wParam, // message identifier
2012-12-06 09:53:40
9926
原创 C++/ACM/数据结构/算法
大量资源,http://www.cppleyuan.com/?fromuid=37192 http://www.cppleyuan.com/?fromuser=nan5211203
2012-11-21 09:07:20
638
原创 windows特殊文件 CSlid标识
目录(Directory)与文件夹(Folder)的区别 目录是DOS时代的产物,DOS文件系统是以目录树的形式将文件组织起来的,文件全部包含在目录里。任何一个文件的全名,由“目录名+文件名”两部分组成,目录名则是以“根目录+子目录+多级子目录...”组成,其中根目录是以任一26个英文字母加上冒号“:”表示的盘符,目录之间用反斜杠“/”作为路径分隔符分隔;文件名由“文件名称+扩展名”,扩展
2012-10-25 13:40:54
1605
原创 IDL中用到的关键词
1.inport: 类似于c语言中的#include,这里引入一个头文件Mydefs和另一个IDL文件Unknown.idl,在Mydefs文件中可能包含了自定义类型,在Unknown.idl文件中包含了IUnknown的定义。2.object:表示定义的是COM接口而不是RPC接口。3.uuid:uuid后面的括号括起来的是接口的IID,是接口的唯一标识。4.interface:
2012-10-20 10:22:27
703
原创 COM笔记(QueryInterface接口查询)
HRESULT QueryInterface(【in】REFIID iid,【out】void**ppv); QueryInterface 函数返回值是一个32位的整数,反映了查询结果:1. S_OK :查到了指定接口,接口的指针存放在ppv输出参数中;2.E_NOINTERFACE:对象不支持iid所指定的接口,*ppv为NULL;3.E_UNEXPECTED
2012-10-19 16:25:29
1042
原创 COM笔记(生存周期控制)
IUnknown接口实现生存周期控制的方法。每一个对象都记录了一个成为“引用计数”的数值,该数值的含义为有多少个有效指针的引用该COM对象。当客户得到了一个指向该对象的接口指针时,引用计数增加1;当客户用完接口指针时,引用计数减一。当引用计数为0的时候COM对象就应该把自己从内存中清除掉,也就是调用清除函数;引用计数的实现有三个层次。按照COM的规范一个COM组件可以实现多COM对象。
2012-10-19 15:19:21
652
原创 COM笔记(COM接口特性)
COM的接口是一组 逻辑上相关的函数集合,其函数被称为接口函数。接口常以“I”为前缀。COM的接口都是由一个128位的全局唯一标识符(GUID)来标识。客户通过这个标识(GUID)获得接口的指针,在通过接口指针调用相应的成员函数。COM的接口特点:1. 二进制特性:接口的规范不建立在任何编程语言的基础上,而是规定了二进制一级的标准。任何语言只要有足够的数据表达能力,就可以对接口进行描述
2012-10-19 14:32:21
1107
原创 c++自定义异常处理机制 .
这两天我写了一个测试c++异常处理机制的例子,感觉有很好的示范作用,在此贴出来,给c++异常处理的初学者入门。本文后附有c++异常的知识普及,有兴趣者也可以看看。下面的代码直接贴到你的console工程中,可以运行调试看看效果,并分析c++的异常机制。 #include "stdafx.h"#include#include#include // 内存泄
2012-10-18 17:19:03
1077
原创 MFC - 从屏幕右下角升起的弹窗
// 在OnInitDialog()中添加// 示例// 获得桌面大小CRect rectWorkArea;SystemParametersInfo(SPI_GETWORKAREA,0,&rectWorkArea,SPIF_SENDCHANGE); // 获得对话框大小CRect rectDlg;GetWindowRect(&rectDlg);int
2012-10-18 15:00:31
5377
2
原创 MFC 文本超链接
第一步,在Dlg类中定义一个protect成员变量HCURSOR m_hCursor,在构造函数里(或者在OnInitDialog()里)调用语句m_hCursor=AfxGetApp()->LoadCursor(IDI_CURLINK);加载鼠标;(IDI_CURLINK为鼠标的icon)第二步,在Dlg类中定义一个protect成员变量RECT m_StaticRect,表示静
2012-10-18 14:53:06
1696
转载 MFC隐藏进程,任务管理器内看不到
只要把cpp和h加入工程,include就可以了//------------------HideProcess.h--------------------?//加入MFC工程调用即可 BOOL HideProcess(); //------------------HideProcess.cpp------------------?#include "std
2012-10-18 11:12:13
1988
原创 列举出所有进程(包括隐藏的)
其实只要导出这些NativeAPI,在应用态也是可以用的。本文来自看雪的某人谁不记得了不好意思了!C/C++ codeHANDLE LzOpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle, DWORD dwProcessId){ NTSTATUS status=0; char *pBuf=NULL;//
2012-10-18 11:03:56
1855
转载 COM的常用函数
一、初始化函数:1、CoBuildVersion 获取COM库的版本号。COM库也是在不断的升级的,这样会出现不同的版本号,当客户程序想要获取COM库的新功能和性能时必须要进行版本的检查,版本号分为主版本号和次版本号,主版本号放在返回值的高16位,次版本放在低16位。一般只要比较主版本号就可以了。2、CoInitialize COM库的初始化。COM库只有初始化后才可以使用,CoIniti
2012-10-12 16:34:50
2087
原创 COM个人笔记(标准类厂接口:IClassFactory)
如果在工程中需要一个类厂对象那么例如:DB对象的创建需要一个CDBSrvFactory,则类厂对象为我们提供了一个创建DB对象的函数CreateDB;HRESULT CreateDB(IDB * ppObj)这个函数只能返回IDB指针,如果对象想要实现多个接口,那就要指定初始接口HRESULT MyCreateInstance(EIID riid,void** ppObj)
2012-10-12 16:11:24
1369
原创 COM(个人笔记)IUnknown接口
COM对象必须具备的两大特性:多接口(QueryInterface),引用计数(AddRef and Release)。由于COM对象都必须实现这三个函数,所以COM定义了一个标准接口IUnknown:class IUnknown{public: virtual HRESULT QueryIterface(RIID riid,void**ppObj)=0; virt
2012-10-12 15:31:01
706
转载 V_VT含义
V_VT是一个宏,其定义如下:#define V_VT(X) ((X)->vt)其含义是,对于指针X,取其指向的对象的vt成员。这个宏一般配合结构体tagVARIANT使用。tagVARIANT是一个可以存放很多不同数据类型的结构,包括整型、浮点型、日期型以及COM指针类型等等,具体存放的类型是什么可以用VARTYPE类型的成员变量vt来获知。V_VT就是获取vt的一个
2012-10-09 13:36:54
5663
转载 BSTR 字符串
C-Style 字符串C程序语言本身原并不支援字串数据结构。字符串通常以一个字符数组(或称阵列)或一个指向字符资料的指标指标来表达。由于C语言的数组不包含其长度的资讯,故亦无法表示所载之字符串之长度。C语言社群对此通用之解决方案为于字符串末端增添一数值0的字符。C语言的标准程序库中的字符串处理功能亦以此为基础。C-Style 字符串特点为不直接包含长度资讯。要取得字符串之长度,就必须从头到
2012-10-09 10:26:55
642
转载 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认int 错误的解决方法
一些函数定义中,在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整型;但是vs2008/vs2010不支持默认整型,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,可以用排除4430来解决;具体的在打开project->BaseClasses properties->configuration->C/C++ ->Advance中禁用特定警告中排除4430即可。
2012-10-08 13:56:27
4342
1
转载 NETRESOURCE
NETRESOURCE类型定义Type NETRESOURCEdwScope As LongdwType As LongdwDisplayType As LongdwUsage As LonglpLocalName As StringlpRemoteName As StringlpComment As String
2012-09-10 11:18:58
1798
转载 常见的20种VC++编译错误信息
1、fatal error C1010: unexpected end of file while looking for precompiled header directive。. D# d. X- E. A9 B9 G) F寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h") 7 G# b3 ]# |, k0 @+ Y9 B& y1
2012-09-01 10:41:47
1094
转载 vc 连接Access 2003
(1) 在StdAfx.h中添加下面一句话:#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")(2) 连接数据库并读取其中一个字段?123456789101112
2012-08-29 10:59:20
482
转载 记录集 _RecordsetPtr
2011-07-31 08:44 _RecordsetPtr_RecordsetPtr智能指针,它是专门为通过记录集操作数据库而设立的指针,通过该接口可以对数据库的表内的记录、字段等进行各种操作。要搞清楚:数据库和ADO的记录集是两个不同的概念, 是存在于不同物理位置的两个存储空间。 记录集相当于是实际数据的一份拷贝。 正因为记录集是相对脱离数据库而存在的, 所以才存在后面将要介绍
2012-08-27 15:19:51
1799
转载 com组件是什么
COM组件是以WIN32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行代码组成。 COM组件是遵循COM规范编写的 COM组件是一些小的二进制可执行文件 COM组件可以给应用程序、操作系统以及其他组件提供服务 自定义的COM组件可以在运行时刻同其他组件连接起来构成某个应用程序 COM组件可以动态的插入或卸出应用 COM组件必须
2012-08-15 15:05:17
529
转载 WTL 中使用GDI+ 备忘 (博客园个人笔记)
WTL 中使用GDI+ 备忘#include using namespace Gdiplus;#pragma comment(lib, "gdiplus.lib")_tWinMain{HRESULT hRes = ::CoInitialize(NULL);GdiplusStartupInput gdiplusStartupInput;ULONG_PTR gdiplu
2012-08-15 10:28:00
1705
转载 OPENFILENAME结构 .
OPENFILENAME结构包含了GetOpenFileName和GetSaveFileName函数用来初始化打开或另存为对话框的信息。在用户关闭对话框后,系统返回关于用户的选择信息到这个结构中。typedef struct tagOFN { DWORD lStructSize; HWND hwndOwner; HINSTAN
2012-08-10 11:08:11
510
转载 剪贴板操作
鼠标选中一段字符点击按钮copy到剪贴板CString strtxt,str; int istart,iend; m_add.GetWindowText(strtxt); m_add.GetSel(istart,iend); if(istart==iend) AfxMessageBox("未选中"); // return; str=strtxt.Mid(istar
2012-08-02 17:07:17
377
转载 c++ cout<<*p<<endl<<*p++;被重载导致输出错误问题原因!
int main() { char *p="df"; coutcin.get(); return 0; }竞猜结果,噹当当。。。正确结果f,d为什么呢?下面正解:呵呵,首先肯定一下,你说的*p和*p++的值是完全一样的。 你的第一个程序的问题不是出在指针上,而是出在C++的流运算符将你第一个程序改为: cout cout 之后就可以得
2012-08-01 15:48:52
2922
转载 编写一个基于对话框的应用程序可以用来打开及显示文本文件设置所显示的文本的字体颜色。
以下文章为转载:主要是为了学习题目:编写一个基于对话框的应用程序,要求其能实现如下功能:(1)可以用来打开及显示文本文件。(2)可以设置所显示的文本的字体颜色。★打开Microsoft Visual C++ 6.0文件->新建选择MFC AppWizard(exe)输入工程文件名。这里填写09点击确定按钮,程序将自动出现MFC应用程序向导选择基本对话框点
2012-07-31 16:43:37
3773
转载 使用FontFamily或Font类建立对象时失败的原因
GDI+有个FontCollection类,一般情况下很少用到,很多人甚至连这些类是干什么的都不知道。FontCollection本身是个基类,它有两个派生类InstalledFontCollection和PrivateFontCollection,这两个类用好了,可以起到意想不到的作用。 InstalledFontCollection用来枚举当前系统已经安装的字体。有人经常问,
2012-07-31 10:20:27
1686
转载 重启、关闭计算机 打开/关闭CD-ROM获取本机已安装的字体修改执行文件图标
一、重启计算机typedef int (CALLBACK *SHUTDOWNDLG)(int); //显示关机对话框函数的指针HINSTANCE hInst = LoadLibrary("shell32.dll"); //装入shell32.dllSHUTDOWNDLG ShutDownDialog; //指向shell32.dll库中显示关机对话框函数的指针if(hInst !=
2012-07-31 10:06:46
1031
转载 PROCESSENTRY32 结构
PROCESSENTRY32 结构如下: typedef struct tagPROCESSENTRY32 { DWORD dwSize; // 结构大小; DWORD cntUsage; // 此进程的引用计数; DWORD th32ProcessID; // 进程ID;
2012-07-25 16:08:40
10186
转载 OnEraseBkgnd(CDC *pDC)
/* float fsp[2]; POINT Newp; //获取现在对话框的大小 CRect recta; GetClientRect(&recta); //取客户区大小 Newp.x=recta.right-recta.left; Newp.y=recta.bottom-recta.top; fsp[0]=(float)Newp.x/Old.x; f
2012-07-19 15:57:31
966
转载 判断32/64位
#include typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress( GetModuleHandle( "kernel32 "), "IsWow6
2012-07-05 14:37:40
307
转载 操作系统
enum Win32Type{Win32s,WinNT3,Win95,Win98,WinME,WinNT4,Win2000,WinXP};Win32Type IsShellType(){Win32Type ShellType;DWORD winVer;OSVERSIONINFO *osvi;winVer=GetVersion();
2012-07-05 14:27:26
372
原创 读取txt文件操作
1.C语言FILE *pFile = fopen("1.txt","r");//比如打开一个当前目录的1.txt文件,打开方式为读取打开char ch[100];memset(ch,0,100);//将字符数组的所有元素清0fread(ch,1,100,pFile);fclose(pFile);MessageBox(ch);2.C++方式ifstream i
2012-06-14 10:29:51
464
原创 故事..
一小朋友问一富翁说 叔叔你为什么这么有钱。富翁摸摸小朋友的头说:小时候我爸给了我一个苹果,我卖掉了它有了两个苹果,后来我又赚到了四个苹果。小朋友若有所思的说哦…叔叔,我好像懂了。富翁说, “你懂你妹阿 后来我爸死了,我继承了他的财产… 这笑话告诉我们:不要痴迷于从阅读成功人士的传记,从中寻找经验,这些书大部分经过了精致的包装,很多重要的事实不会告诉你,例如:盖茨的的书不会告诉你他母亲是IBM
2012-06-13 16:19:20
543
原创 数组没隔两个数删除一个数最后循环求最后删除数的下标
#include "stdafx.h"#include using namespace std;#define null 1000int main(){ int arr[1000]; for(int i=0;i arr[i]=i; int j=0; int count=0; while(count { while(arr[j%1000]==
2012-06-09 15:13:23
775
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人