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

在 VB6 中使用 .NET 库和 XML

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.72/5 (9投票s)

2008 年 3 月 11 日

CPOL

4分钟阅读

viewsIcon

62725

downloadIcon

1985

如何在 VB6 中使用 .NET 库和 XML。

引言

.NET 应用程序通常不再使用 INI 文件和注册表。那么该使用什么呢?XML 看起来很合适,但只要看一眼 System.XML 就足以让大多数开发者望而却步,尤其是仅仅为了存储几个字段。幸运的是,.NET 提供了一种非常简单的方法来解决这个问题,但这种方法通常不被开发者所注意到。在这篇文章中,我将解释如何用几行代码轻松地存储和检索应用程序设置。

背景

在 Windows 3.1 中,开发者使用 INI 文件来存储设置。总的来说,它们对于简单的设置效果很好,但不适合更复杂的数据。INI 文件也无法处理多用户,因此微软发明了注册表。

随着 Win32 的出现,注册表也随之而来。注册表速度快、分层化、支持多用户,并允许存储类型化数据。但不幸的是,注册表是一个核心系统组件,并没有包含在应用程序安装中。

接下来,XML 变得流行起来。XML 提供了快速、分层化的类型化数据存储。然而,XML 非常灵活,对大多数用户来说,做任何简单的事情都是一项艰巨的任务。幸运的是,有一些比使用 System.XML 并自己处理一切更简单的方法。

使用代码

要使用该类,您只需要关注两个方法

  • void GetSettings(String Key)
  • 设置 XML 设置文件的路径和文件名。

  • void WriteSetting(String Key, String KeyValue, bool encode)
  • 根据键名和值名将一个值写入设置文件。encode 选项用于加密该值。

// Read Data
TxtServerName.Text = Configure.getSetting("DBServer");
//Save data
Configure.writeSetting("DBServer", TxtServerName.Text, false);
//Read data from .net in vb6
Dim x As New Configuration.configure
TxtDBServer.Text = CStr(x.getSettingFromVB6("DBServer"))

如果 XML 文件不存在,或者如果某个键/值不存在,Write 方法将创建它,而 Get 方法将返回默认值。

第一阶段:创建控件

在我们的案例中,这花了三个阶段中最长的时间,仅仅是因为控件的性质以及计算文本位置等。我将不深入探讨我们的控件细节,只介绍 VB6 互操作所需的步骤。

  1. 从 Visual Studio 中创建一个新的 Windows 控件库项目。
  2. 在属性页的 Debug 和 Release 模式下,都勾选“Register for COM Interop”复选框。
  3. AssemblyInfo.cs 文件中,将程序集级别的属性 ComVisible 更改为 true。如果该属性尚未在配置文件中,则添加它。
  4. [assembly: ComVisible(true)]

这就是使项目对 VB6 项目可见所需的一切。

属性

关于这些内容的一点说明:属性会暴露给 VB6,因此,就像 .NET 控件一样,如果您想暴露一个值,您必须将其封装在 Property 表达式中。您不能仅仅使其成为一个可见的字段。

第二阶段:注册程序集

在使用 VB6 之前,必须在客户端计算机上注册该库。如果它未在开发计算机上注册,那么它将不会在 VB6 的“References”对话框中显示。如果它未在安装计算机上注册,那么它与未注册的经典 DLL 或 ActiveX 控件的问题类似。“Register for COM Interop”复选框在 VS2005 中运行时会自动执行此注册,但在 VS 关闭时会取消注册。

要注册程序集,您必须使用 .NET 等效的 regsvr32,即 regasm。它位于框架目录中,通常是“C:\WINDOWS\Microsoft.NET\Frmaework\v2.0.50727”。要注册它,请打开命令提示符并运行以下命令,假设框架目录和程序集目录在环境变量的当前路径中。

regasm.exe Assembly.dll

第三阶段:添加到 VB6 项目

这里的关键是 VBControlExtender 对象,它允许在 VB6 窗体上托管 .NET 控件。但是,第一步是添加您刚刚注册的程序集的引用。这可以通过在 Project | References 菜单中勾选相应的框来完成。

完成此操作后,就可以将以下代码添加到项目窗体的代码中。

结论

XML 文件是一种广泛的标准,它允许轻松地存储结构化的类型化数据。使用 XML 文件可以方便地由最终用户甚至其他软件进行编辑。使用 System.XML,您可以轻松地将您的设置存储在 XML 文件中。

历史

  • 2008 年 3 月 10 日 - 原始文章。
© . All rights reserved.