首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(0) | 引用(0) | 阅读1789次
VC的另类数据库编程2

在VC程序中调用服务组件http://www.shengfang.org
 
 
1、运行VC 6.0,使用MFC程序http://www.shengfang.org向导创建一个新的基于对话框的MFC应用程序。

2、使用#import导入服务组件,拷贝PRJADO.DLL到VC工程目录,打开STDAFX.H文件增加如下代码:

# import "prjado.dll"

using namespace prjado;

这段代码应该放置在:

//{ { AFX_INSERT_LOCATION } }

// Microsoft Visual C++ will insert additional declarations immediately 之后和#endif 之前。

在stdafx.h文件导入dll能够让http://www.shengfang.org编译器在运行时连接dll的类型库,#import它能够自动产生一个对GUIDs的定义,同时自动生成对clsado对象的封装。同时能够列举它在类中所能找到的类型, VC++会在编译的时候自动生成两个文件:

一个头文件(.tlh),它包含了列举的类型和对类型库中对象的定义;

一个实现文件(.tli)对类型库对象模型中的方法产生封装。http://www.shengfang.org

Namespace(名字空间)用来定义一个名字空间,http://www.shengfang.org使用unsing就可以将当前的类型上下文转换名字空间所定地,让我们可以访问服务组件的方法。

如果我们修改了服务组件程序,http://www.shengfang.org建议删除这两个文件后重新完整编译工程,以便让编译器重新列举类的属性以及函数。

3、在对话框中新添加一http://www.shengfang.org按钮,标题设为“测试”。双击“测试”按钮,系统提示新建一函数OnButton1对应于该按钮的CLICK事件。OnButton1函数的具体代码如下

HRESULT hresult;

CLSID clsid;

CoInitializehttp://www.shengfang.org(NULL);  

//初始化COM接口http://www.shengfang.org

hresult=CLSIDFromProgID(OLESTR("prjado.clsado"), &clsid);   

//得到组件的CLSID             

_clsado *t;      http://www.shengfang.org 

//这就是我们在PRJADO.DLL中定义的类http://www.shengfang.org

hresult=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(_clsado),(LPVOID *) &t);

初始化CLSADO,CoCreateInstance()的第一个参数是对象的CLSID(类代码),这个128位的编码唯一地标识了组件服务,它的路径和运行参数等信息都放在系统注册表中;第二个参数一般情况下设为NULL;第三个参数用来指明对象的运行环境http://www.shengfang.org,如远程或本地,此处设为CLSCTX_INPROC_SERVER,标明是服务组件是一个DLL;第四个参数指明用来与对象通信接口的ID,这也是一个128位的编码;第五个参数是用来接收对象的接口指针。

if(FAILED(hresult))

{

              AfxMessageBox("初始化服务组件失败");

       return;

}    

//如果初始化失败,弹出提示对话框后http://www.shengfang.org退出程序

t->ado_Init()  ; 

//调用初始化函数http://www.shengfang.org

       t->ado_add("从VC调用组件") ; 

//调用增加记录函数

t->ado_UnInit ();

//调用http://www.shengfang.org关闭连接函数

t->Release();  

//释放接口指针

CoUninitialize(); 

//  关闭COM库的联接

AfxMessageBox("调用服务组件完成");

保存工程后编译运行VC 程序,点击“测试”按钮,等待完成提示后,我们打开数据库就可以看到刚才添加的记录了。

总结:
综上所述,在实际的应用程序开发中,利用组件技术,我们可以进行VC和VB混合编程,充分地发挥开发工具的优势,可以很好地加快软件的开发进度,并且极大的改善程序的可维护性和可用性。


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/vcvbado2.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1110344166

2005年3月9日12:56星期三  [Dev开发] 追踪此文的RSS
提示:
此文还没有评论。

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1790
在线: 16||用户: 2563 [列表]
今日:702||到访:2682341
Rss:841983||评论:1585

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8