ATL COM 和 ADO
2006-07-22 22:53:03 来源:WEB开发网核心提示: 为了创建DLL ,我们使用ATL COM AppWizard产生一个应用程序框架,给工程命名为FindCust,ATL COM 和 ADO(2),选择服务器类型为 Dynamic Link Library ,并选择support MFC library.选项,为了让MIDL编译器也明白AD
为了创建DLL ,我们使用ATL COM AppWizard产生一个应用程序框架,给工程命名为FindCust,选择服务器类型为 Dynamic Link Library ,并选择support MFC library.选项。
向工程插入一个新的ATL对象(New ATL Object ),选择Simple Object 在 ATL Object Wizard Properties窗口的Short Name文本框中输入 Search 并点击OK,添加了对象。
在类视图(CLASSVIEW)中,右击接口名称并添加一个方法,给该方法起名为SearchCust,并把下面的文字输入到Parameters文本框中:
[in] BSTR bstrcustid,[out,retval] _Recordset **ptr
点击OK按钮添加这个方法。由于SearchCust 方法返回一个Recordset 对象的引用,所以我们需要导入(import)ADO库,打开StdAfx.h 文件并添加下列代码:
#import "C:\Program Files\Common Files\System\ADO\MSADO15.DLL"
rename_namespace("ADOCust") rename("EOF","EndOfFile")
using namespace ADOCust;
这一步是为了让VC++编译器明白在对象类型库 MSADO15.DLL 中定义的ADO对象。rename_namespace 函数改变了一个名字空间的名称,DLL文件就是被导入到该名字空间中的。rename选项把EOF关键字改成 EndOfFile,这是因为EOF已经被定义到标准头文件中了。
.idl文件中也包含了SearchCust 方法,改方法返回Recordset 对象的引用,为了让MIDL编译器也明白ADO对象,用importlib语句在.idl文件 的library 段中导入类型库( 在importlib "stdole2.tlb"之后)如:
importlib("C:\Program Files\Common Files\System\ADO\MSADO15.DLL");
把接口的定义移动到.idl 文件新添加的imporlib语句的后边,也是为了让MIDL编译器明白ADO对象做完后,我的接口块定义如下:
- ››Adobe推出用于iOS设备创建PDF文件的应用
- ››COM 组件多层聚合嵌套原理
- ››Adobe发布Acrobat X 不支持苹果iOS系统
- ››Adobe公司展示plenoptic lenses技术
- ››Adobe:移动版Flash实测性能高于HTML5视频
- ››Adobe更新Web版Photoshop 无需注册即可使用
- ››Adobe Flash 10.1被曝支持Android效果不佳
- ››Adobe Flash 10.1 for Android 版本被曝工作状况不...
- ››Adobe CEO:不担心iPhone和iPad封Flash技术
- ››Adobe为iPad、Android平台发布免费Photoshop
- ››Adobe发布Android版Flash 10.1 Beta 3
- ››ADO VC++ Extensions入门
更多精彩
赞助商链接