WEB开发网
开发学院软件开发VC ATL COM 和 ADO 阅读

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对象做完后,我的接口块定义如下:

上一页  1 2 3 4  下一页

Tags:ATL COM ADO

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接