65.9K
CodeProject 正在变化。 阅读更多。
Home

登录: 自动化客户端

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.44/5 (9投票s)

2003年8月31日

GPL3

3分钟阅读

viewsIcon

90609

downloadIcon

2400

一个自动化客户端,连接到自动化服务器以验证用户 ID 和密码。

引言

我们已经了解了什么是自动化,并创建了一个登录管理自动化服务器。现在是时候为该服务器构建一个客户端应用程序,使其更有意义了。你可能想知道为什么仅仅为了读写一个简单的数据库做了这么多工作,但现在你将理解这种自动化技术的好处。

一旦构建了自动化服务器,将其合并到任何客户端应用程序中,这只是一个几分钟的简单任务。自动化服务器一旦构建完成,就可以用于在不同环境下构建的不同客户端应用程序,而无需太多更改。这还将客户端应用程序与冗长的数据库编程工作隔离开来,在客户端应用程序和数据库之间创建一个中间层。此外,如果对数据库结构进行更改,只需更改远程服务器上的自动化服务器即可,而客户端应用程序在所有机器上保持不变。这也提供了一种通过 DCOM(分布式组件对象模型)进行远程数据库管理的简便技术。

先决条件

本教程假设你熟悉 Visual C++/MFC、COM、自动化以及本教程中使用的其他技术,如 ADO 等。虽然没有必要非常详细地理解它们的基础知识,但你应该至少对这些基础知识的含义有一个工作知识。最重要的是,你应该大致了解一下登录自动化服务器的示例。

实现

现在是时候用 DevStudio 动手实践了。我们将借助自动化服务器示例创建的类型库来创建一个自动化客户端。

  • 创建一个基于对话框的 MFC 项目,在步骤 2/4 中取消选择所有内容,并接受其他所有内容的默认值。
  • 打开类向导,并从类型库创建一个新类,浏览到 login.tlb 文件所在的文件夹,并选择它。

    Confirm Classes

  • remotelogin.h 文件包含到对话框类实现中。
  • 创建如图所示的对话框。

    Confirm Classes

  • 在对话框类中添加一个类型为 IRemoteLogin 的成员变量 m_login
  • 在对话框类的 OnInitDialog() 成员函数中添加以下几行。
    CoInitialize(NULL);
    if(!m_login.CreateDispatch("Login.CRemoteLogin"))
        AfxMessageBox("Login.CRemoteLogin Not found");
  • 将按钮与对话框成员函数关联起来,并按照示例项目中的操作实现这些函数。
  • 现在编译项目,它应该在没有任何错误的情况下编译,然后运行它。

结论

在这里,我们成功构建了一个自动化客户端,可以验证用户 ID 和密码,允许我们添加新用户、删除现有用户和编辑用户信息。此客户端可以在 MFC 中轻松创建,正如你所看到的,连接到远程自动化服务器是多么容易。我们可以使用通过类型库创建的远程对象,就像从其他类创建的其他对象一样。欢迎你提出宝贵的建议,以使这篇文章更好。

下一步

了解如何通过使用 DCOM 在网络上扩展你的自动化组件,在这里

Copyright

此代码按“原样”提供,不提供任何明示或暗示的保证。您可以不受任何限制地使用和滥用此代码。如果您在任何商业产品中使用此源代码,则无需致谢,但将不胜感激。

参考文献

  • VC++、COM 及其他。

    作者:Yashavant Kanetkar & Sudesh Saoji。

    ISBN:81-7635-206-8

    出版商:BPB 出版社。

    用户级别:初级-中级。

    本书深入介绍了前沿技术,如文档/视图架构、OLE、COM、DCOM、ActiveX、Open GL、打印和打印预览、HTML 帮助系统、编程磁盘和屏幕保护程序。

© . All rights reserved.