自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (35)
  • 问答 (1)
  • 收藏
  • 关注

转载 CoInitialize ( NULL )或其它启动代码。MFC程序使用AfxOleInit() 收回COM库。MFC 程序不用这一步,它自动完成。 CoUninitialize();

// 1. 初始化COM库(让Windows加载DLLs)。通常是在程序的InitInstance()中调用 // CoInitialize ( NULL )或其它启动代码。MFC程序使用AfxOleInit()。 CoInitialize ( NULL ); // 2. 使用外壳提供的活动桌面组件对象类创建COM对象。 // 第四个参数通知COM需要什么接口(

2012-03-31 21:42:27 1527

转载 STDAPI DllRegisterServer()

// DllCanUnloadNow() is called when COM wants to unload our DLL from memory.// We check our lock count, which will be nonzero if there are any COM// objects still in memory.// Return S_FALSE to pre

2012-03-31 21:33:04 1405

原创 <unknwn.h>STDMETHODIMP_(ULONG) STDMETHOD_(ULONG, AddRef)() PURE;

#include //*struct ISimpleMsgBox : public IUnknown{ // IUnknown 方法 STDMETHOD_(ULONG, AddRef)() PURE; STDMETHOD_(ULONG, Release)() PURE; STDMETHOD(QueryInterface)(REFIID riid, void** ppv) P

2012-03-31 17:02:06 1083

原创 memmove

#include /*void* memmove(void *dest, const void* src, size_t n) { if(dest == NULL || src == NULL) return NULL; char* p =(char*) dest; char* q =(char*) src; while(n--)

2012-03-31 15:16:18 651

转载 char *unicodeToUtf8(const WCHAR *zWideFilename) WCHAR *mbcsToUnicode(const char *zFilename)

char *unicodeToUtf8(const WCHAR *zWideFilename) { int nByte; char *zFilename; nByte = WideCharToMultiByte(CP_UTF8, 0, zWideFilename, -1, 0, 0, 0, 0); zFilename = (char *)malloc(nByt

2012-03-31 13:45:37 877

转载 QueryInterface()

QueryInterface()QueryInterface()简称QI(),由客户端程序调用这个函数从COM对象请求不同的接口。我们在例子代码中因为只实现一个接口,QI()会很容易使用。QI()有两个参数:一个是所请求的接口IID,一个是指针的缓冲大小,如果查询成功,QI()将接口指针地址存储在这个缓冲指针中。HRESULT CUnknownImpl::QueryInterface ( R

2012-03-31 09:30:47 746

转载 实现接口,从IUnknown开始

实现接口,从IUnknown开始有必要回想一下IUnknown派生的每一个接口。因为IUnknown包含了两个COM对象的基本特性——引用计数和接口查询。当你编写组件对象类时(coclass),还要写一个满足自己需要的IUnknown实现。以实现IUnknown接口的组件对象类为例——下面这个例子可能是你编写的最简单的一个组件对象类。我们将在一个叫做CUnknownImpl的C++类中实现IUn

2012-03-31 09:21:16 1173

转载 客户应用程序调用COM API CoFreeUnusedLibraries()时,COM库遍历这个客户端应用已加载所有的DLL服务器并通过调用它的DllCanUnloadNow()函数查询每一个服务器

服务器生命其管理DLL服务器的一个与众不同的方面是控制它们被加载的时间。“标准的”DLLs被动的并且是在应用程序使用它们时被随机加载/或卸载。从技术上讲,DLL服务器也是被动的,因为不管怎样它们毕尽还是DLL,但COM库提供了一种机制,它允许某个服务器命令COM卸载它。这是通过输出函数DllCanUnloadNow()实现的。这个函数的原型如下:         HRESULT DllCa

2012-03-31 09:11:03 1358

转载 处理HRESULT

处理HRESULT    这一部分准备用SUCCEEDED 和 FAILED宏进行一些简单的出错处理。主要是深入研究从COM方法返回的HRESULT,以便达到完全理解和熟练应用。        HRESULT是个32位符号整数,其非负值表示成功,负值表示失败。HRESULT有三个域:程度位(表示成功或失败),功能码和状态码。功能码表示HRESULT来自什么组件或程序。微软给不同的组件多赋予

2012-03-31 08:58:45 1087

原创 创建一个用于建立快捷方式的COM 对象并取得IShellLink 接口。

/*第二个例子展示了如何使用一个提供单接口的COM对象QueryInterface()函数。其中的代码用外壳的Shell Link组件对象类创建我们在第一个例子中获得的墙纸文件的快捷方式 以下是编程步骤: 初始化COM 库。 创建一个用于建立快捷方式的COM 对象并取得IShellLink 接口。 调用IShellLink 接口的SetPath()方法 调用对象的Qu

2012-03-31 08:52:05 1292

转载 第二个例子展示了如何使用一个提供单接口的COM对象QueryInterface()函数

使用多接口的COM对象 第二个例子展示了如何使用一个提供单接口的COM对象QueryInterface()函数。其中的代码用外壳的Shell Link组件对象类创建我们在第一个例子中获得的墙纸文件的快捷方式以下是编程步骤:初始化COM 库。 创建一个用于建立快捷方式的COM 对象并取得IShellLink 接口。调用IShellLink 接口的SetPath()方法调用对象的Q

2012-03-31 08:45:12 658

原创 调用COM对象的GetWallpaper()方法。 如果GetWallpaper()成功,则输出/显示墙纸文件名

/*初始化COM库。 (Initialize) 创建一个与活动桌面交互的COM对象,并取得IActiveDesktop接口。 调用COM对象的GetWallpaper()方法。 如果GetWallpaper()成功,则输出/显示墙纸文件名。 释放接口(Release())。 收回COM库(Uninitialize)。 //*///#include #include

2012-03-31 08:43:29 1202

转载 第一个例子展示的是单接口COM对象

用例子代码总结上述内容 下面用两个例子演示本文所讲的COM概念。代码中还包含了本文的例子工程。使用单接口COM对象 第一个例子展示的是单接口COM对象。这可能是你碰到得最简单的例子。它使用外壳中的活动桌面组件对象类(CLSID_ActiveDesktop)来获得当前桌面墙纸的文件名。请确认系统中安装了活动桌面(Active Desktop)。以下是编程步骤:初始化COM库

2012-03-31 08:29:30 683

转载 得到一个Unicode串时,可以用下列几种方法之一将它转换成char类型串

当你从某个COM方法返回得到一个Unicode串时,可以用下列几种方法之一将它转换成char类型串:1、调用 WideCharToMultiByte() API。2、调用CRT 函数wcstombs()。3、使用CString 构造器或赋值操作(仅用于MFC )。4、使用ATL 串转换宏。 WideCharToMultiByte()    你可以用WideCharToM

2012-03-31 08:25:46 750

转载 CoFreeUnusedLibraries()API。这个API将卸载任何没有明显引用的COM服务器

删除COM对象    前面说过,你不用释放COM对象,只要告诉它们你已经用完对象。IUnknown是每一个COM对象必须实现的接口,它有一个方法,Release()。调用这个方法通知COM对象你不再需要对象。一旦调用了这个方法之后,就不能再次使用这个接口,因为这个COM对象可能从此就从内存中消失了。    如果你的应用程序使用许多不同的COM对象,因此在用完某个接口后调用Release()

2012-03-30 21:31:25 1381

原创 Interface\{00000001-0000-0000-C000-000000000046}] @="IClassFactory"

[HKEY_CLASSES_ROOT\Interface\{00000000-0000-0000-C000-000000000046}]@="IUnknown"[HKEY_CLASSES_ROOT\Interface\{00000000-0000-0000-C000-000000000046}\BaseInterface]@=""[HKEY_CLASSES_ROOT

2012-03-30 21:23:36 1779

转载 MIDL_INTERFACE("00000001-0000-0000-C000-000000000046") IClassFactory : public IUnknown

EXTERN_C const IID IID_IClassFactory;#if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("00000001-0000-0000-C000-000000000046") IClassFactory : public IUnknown { pu

2012-03-30 21:17:35 1697

转载 IClassFactory = interface(IUnknown) ['{00000001-0000-0000-C000-000000000046}']

{ IClassFactory interface } {$EXTERNALSYM IClassFactory} IClassFactory = interface(IUnknown) ['{00000001-0000-0000-C000-000000000046}'] function CreateInstance(const unkOuter: IUnknown; c

2012-03-30 21:15:07 1454

转载 const IID IID_IUnknown

EXTERN_C const IID IID_IUnknown;#if defined(__cplusplus) && !defined(CINTERFACE)#if (_MSC_VER >= 1200) // VC6 or greaterextern "C++"{#endif MIDL_INTERFACE("00000000-0000-0000-C000-00000000

2012-03-30 12:30:57 1959

转载 java.net Socket

import java.io.*; import java.net.*; public class Client { Socket socket; BufferedReader in; PrintWriter out; public Client() { try { socket = new Socket("127.0.0.1", 10000); in = new Bu

2012-03-29 21:02:37 538

原创 str2num

// str2num.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "math.h"int str2num(char *s){ char ch; int i=0; int a[255]; int sum=0; do { ch=s[i];

2012-03-29 15:13:57 2114

原创 ReleaseBuffer只有一个作用,就是更新字符串的长度

void CStringBufferDlg::OnButton1() { // TODO: Add your control notification handler code hereCString WeatherZone = "";int strLen = this->m_WeatherZone.GetLength();memcpy(WeatherZone.GetBuffer(s

2012-03-29 09:59:33 793

转载 m_Time = CTime::GetCurrentTime();

void CCreateIDDlg::OnButcreate() { // TODO: Add your control notification handler code here UpdateData(TRUE); m_ID = m_Date.Format("%Y%m%d"); m_ID += m_Time.Format("%H%M%S"); UpdateData(FALSE);

2012-03-28 22:02:47 995

转载 try throw catch

// except.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "string.h"class CDivZeroException //定义一个除零的异常类{public: char ExceptionMsg[128]; //定义数据

2012-03-27 22:07:14 529

转载 主键(PrimaryKey) 复合主键 用一个无意义 的字段做主键将会更加有利于系统的可扩展性

1.2.6 主键(PrimaryKey)员工表中的每一行记录代表了一个员工,一般员工的名字就能唯一标识这一个员工,但是名字也是有可能重复的,这时我们就要为每一名员工分配一个唯一的工号:工号 姓名 部门 入职时间001 马小虎 产品开发部 2003年5月22 日002 王二小 技术支持部 2005年7月17 日003 白展堂 后勤部 1998年3月27 日004 钱长贵 销售部 200

2012-03-27 16:36:47 1721

转载 求两个整数的最小公倍数

求两个整数的最小公倍数假设两个整数为x和y。算法1:(1)先求出x和y的最大公约数,并赋给变量r;(2)x和y的最小公倍数即为:x*y/r程序如下:int getm(int x,int y){int r;r=getcd(x,y);return x*y/r;}该方法需调用求最大公约数函数。算法2:(1)将两数中较小的数放在x中,较大数保存在y中。(2)判断y是否为x的整

2012-03-27 16:17:10 2442

转载 求两个正整数的最大公约数

求两个正整数的最大公约数假设两个正整数用u和v表示,算法采用辗转相除法,具体描述如下:(1) 求出u%v的值并赋给变量r:r=u%v(2) 进行迭代:u=v;v=r;(3) 看v是否为0,若是,则u即为所要求的值,否则,转到(1)。程序如下:int getcd(int u,int v){int r;while(v!=0){r=u%v;u=v; v=r;}return u

2012-03-27 16:14:28 989 1

转载 判断一个数是否是素数

判断一个数是否是素数给定一个整数,判断它是否是素数。由数学知识可得知:只要m能被2,3,…,m-1中的任何一个数整除,那么它就不是素数,否则就是素数。根据这一思路,我们用一个循环过程及判断一个数是否能被整除的方法构造出下面的算法:int isp(int m){int i=0;for(i=2;i<m;i++)if(m%i==0) return 0;return 1;}思路非常清晰:

2012-03-27 16:11:31 1392

转载 求ax^2+bx+c=0的根

求ax^2+bx+c=0的根分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下:d=b*b-4*a*c;if(d>=0){x1=(-b+sqrt(d))/2a;x1=(-b-sqrt(d))/2a;printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);}else{r=-b/(2*a);i =sqrt

2012-03-27 16:08:36 1001

转载 if((c>=’A’)&&(c<=’Z’)) 判断c是否是大写字母

1、 学会省力气的编程方法很多考生在编程中做了很多费力不讨好的事情。例如:c是一个char类型的变量,程序要求判断c是否是大写字母。有的人就开始在大脑中努力搜寻已经背了N遍的ASCII编码表,终于写出了下面的代码:if((c>=65)&&(c<=90))……值得庆幸的是,他的记忆力很好,没有背错ASCII编码表。如果背错了的话,那就有可能上机考试就要重考了!其实有完全不用使用ASCII编

2012-03-27 15:58:00 3039

原创 A* obj=new C(); obj->fun(); class C:public B { private: virtual fun()

// tmpDerive.cpp : Defines the entry point for the console application.//#include "stdafx.h"class A{public: virtual fun() { printf("A!\n"); }};class B:public A{protected: virtual fun()

2012-03-26 20:44:35 918

转载 void Validate(double x); ::Validate(2.0f);

// P95.cpp : Defines the entry point for the console application.//#include "stdafx.h"void Validate(float x){ printf("float\n");}void Validate(int x){ printf("int\n"); }int main(int a

2012-03-26 20:24:12 511

转载 OutputInfo(int num,...)//定义一个省略号参数的函数

// OutputInfo.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdio.h"#include void OutputInfo(int num,...) //定义一个省略号参数的函数{ va_list arguments;

2012-03-26 20:14:54 1436

转载 typedef int (A::*Myfunction)(int); B* pB = new B; Myfunction pf = (Myfunction)(&B::Fb);

// ImInDerived.cpp : Defines the entry point for the console application.//#include "stdafx.h"#includeclass A{public: A(){}; virtual ~A(){};};class B : public A{public: B(){}; ~B(){};

2012-03-26 19:05:07 735

原创 (deriveObj.*pVIDeriveMemFunc)(20);

// test.cpp : Defines the entry point for the console application.//#include "stdafx.h"class Base {public: //ordinary member function void setValue(int iValue){printf("Base::setValue(%d)

2012-03-26 18:56:26 488

转载 HELLO_FUNC phello_fun=&test::hello; (p->*phello_fun)();

#include #include class test { public: test(int i){ m_i=i;} test(){}; void hello() { printf("hello\n"); } private: int m_i; }; /*int main() { test *p=new test(); p->hell

2012-03-26 18:31:41 602

转载 memcpy(&func2,&phello_fun,sizeof(phello_fun));

#include #include class test { public: test(int i){ m_i=i;} test(){}; void hello() { printf("hello\n"); } private: int m_i; }; /*int main() { test *p=new test(); p->hello(

2012-03-26 18:12:49 674

原创 cout<<"Press any key to exit!\n"<<endl;

#include #include #include int main(){ CFile f; CFileException e; char* pFileName="d:\\test.dat"; if(!f.Open(pFileName,CFile::modeRead,&e)) { cout<<("Open File Failed!")<<endl; } //*

2012-03-26 09:09:40 726

转载 MFC init

//首先,在文件中加入如下头文件语句:#ifndef VC_EXTRALEAN#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料#endif#include #include // MFC 核心组件和标准组件#include // MFC 扩展 #pragma comment(lib,"ker

2012-03-25 11:00:53 859

原创 CFile f; CFileException e; if(!f.Open(pFileName,CFile::modeRead...

#include#include#includeint main(){ CFile f; CFileException e; char* pFileName="d:\\test.dat"; if(!f.Open(pFileName,CFile::modeRead,&e)) { cout<<("Open File Failed!")<<endl; } else { c

2012-03-24 21:02:27 1108

cakephp-1.3.21.zip

cakephp-1.3.21.zip

2016-04-27

php-5.3.5-src.zip

php-5.3.5-src.zip

2016-02-17

DownForPhpExt.rar

win32build.zip bindlib_w32.zip Php533Ext_tryshutdown.zip msysCORE-1.0.11-20080826.tar.gz

2016-02-17

hibernate-3.2.0.mysql3113XXX.zip

hibernate-3.2.0.mysql3113XXX.zip

2016-02-01

screener_plugin.zip

screener_plugin.zip 实用又好用的截屏工具

2016-02-01

Hash.zip校验工具

Hash.zip 校验工具 实用工具 校验MD5 CRC32 ...

2016-02-01

UDP打洞源码及原理分析.zip

socket UDP打洞源码及原理分析 需要有udp通信基础

2016-01-31

Java.Web整合开发王者归来src.rar.005

Java.Web整合开发王者归来src.rar.005

2016-01-27

Java.Web整合开发王者归来src.rar.004

Java.Web整合开发王者归来src.rar.004

2016-01-27

Java.Web整合开发王者归来src.rar.003

Java.Web整合开发王者归来src.rar.003

2016-01-27

Java.Web整合开发王者归来src.rar.002

Java.Web整合开发王者归来src.rar.002

2016-01-27

Java.Web整合开发王者归来src.rar.001

Java.Web整合开发王者归来src.rar.001

2016-01-27

Java.Web整合开发王者归来.pdf.010

Java.Web整合开发王者归来.pdf.010

2016-01-27

Java.Web整合开发王者归来.pdf.009

Java.Web整合开发王者归来.pdf.009

2016-01-27

Java.Web整合开发王者归来.pdf.008

Java.Web整合开发王者归来.pdf.008

2016-01-27

Java.Web整合开发王者归来.pdf.007

Java.Web整合开发王者归来.pdf.007

2016-01-27

Java.Web整合开发王者归来.pdf.006

Java.Web整合开发王者归来.pdf.006

2016-01-27

Java.Web整合开发王者归来.pdf.005

Java.Web整合开发王者归来.pdf.005

2016-01-27

Java.Web整合开发王者归来.pdf.004

Java.Web整合开发王者归来.pdf.004

2016-01-27

Java.Web整合开发王者归来.pdf.003

Java.Web整合开发王者归来.pdf.003

2016-01-27

Java.Web整合开发王者归来.pdf.002

Java.Web整合开发王者归来.pdf.002

2016-01-27

Java.Web整合开发王者归来.pdf.001

Java.Web整合开发王者归来.pdf.001

2016-01-27

Depends spy++

vc自带的俩常用工具, Depends spy++,不必多解释吧,都是经常用的。

2013-03-06

cgi纹理图片查看器

可视化OPENGL程序设计中需要用到cgi格式图片,做纹理映射,该程序用于查看cgi格式图片,源码基于delphi

2010-10-15

CDHtmlDialog简单实例

CDHtmlDialog简单实例 《疯狂的程序员》提到过的

2010-01-24

易语言_打开注册表指定项_含代码

易语言 打开注册表指定项 源代码 很简单,用vb,delphi也一样的原理实现

2010-01-13

VB+access数据库登陆

VB access 数据库 登陆界面 例子,一看就知道怎么借用源代码

2010-01-13

C#中创建和调用DLL实例

C#中创建和调用DLL 含源码 学习C#调用dll的例子

2010-01-13

参数自适应差分进化算法

参数自适应 差分 进化算法 遗传算法 matlab

2009-12-26

vc Access密码查看程序 附c++源码

vc的 Access2000,2003 密码查看器 附带c++源码

2009-08-19

抓屏工具 可以带鼠标抓屏

Delphi写的 带鼠标抓屏的工具,附源代码

2009-08-19

可以打开指定注册表项的程序

可以打开指定注册表项的程序 避免在注册表编辑器中寻找位置

2009-07-27

图标提取程序对文件包含的图标加以保存

图标提取程序,浏览文件包含的图标,加以保存

2009-07-27

快速关机软件

超级兔子的一个快速关机工具,关机速度很快

2008-07-27

SnipeSword.exe

比冰刃还好用的进程管理软件

2008-05-08

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除