从 ASP.NET 应用程序调用 Microsoft Visual Basic 6.0 DLL 时,使用 Microsoft Visual Studio .NET 本机调试器调试它

HOW TO:从 ASP.NET 应用程序调用 Microsoft Visual Basic 6.0 DLL 时,使用 Microsoft Visual Studio .NET 本机调试器调试它

文章 ID:811658
最后更新日期:2003年9月15日
版本:2.0
本页内容
概要概要
参考参考

概要

本文逐步介绍了从 ASP.NET 应用程序调用 Microsoft Visual Basic 6.0 DLL 时,如何使用 Microsoft Visual Studio .NET 本机调试器调试它。

要调试 Visual Basic 应用程序,请使用下列方法之一:
使用 Visual Basic 开发环境。

在开发环境中进行调试时,要使用 P-代码。P-代码是一种解释语言,通过它,您可以在开发环境中进行调试。

- 或者 -
如果在 Visual Basic 开发环境中进行调试时没有问题,但编译后的版本中确实又出现问题,则应使用本机调试器。
本文介绍了如何使用第二种方法调试 ASP.NET 中使用的 Visual Basic 6.0 DLL。您应使用 DLL 运行时所使用的同一二进制文件调试 DLL(不包括任何优化)。这将创建一个执行过程,该过程比您在 Visual Basic 开发环境中进行调试时接收到的 P-代码容易调试。

返回页首

要求


下面概括列出了推荐的硬件、软件、网络结构以及所需的 Service Pack:
Microsoft Visual Studio .NET
Microsoft Visual Basic 6.0
Microsoft Internet 信息服务 (IIS) 5.0 或更高版本
本文假定您熟悉下列主题:
Microsoft Visual Basic .NET 语法
Microsoft Visual Basic 6.0 语法
Microsoft Visual Studio .NET 环境
返回页首

创建 Visual Basic 6.0 DLL

1.在 Visual Basic 6.0 IDE 中,在“文件”菜单上单击“新建项目”。
2.在“新建项目”对话框中,单击以选择“ActiveX DLL”,然后单击“确定”。
3.在“视图”菜单上,单击“属性”。
4.在“属性”对话框的下拉列表中,单击“Class1”。
5.将“Name”属性更改为 VB6Class
6.将以下代码添加到您的类中,以在类中创建一个公共方法:
Public Function showButtonValue() As Integer
    showButtonValue = 1000
End Function
7.在“项目”菜单上,单击“Project1 属性”。
8.单击“编译”选项卡,然后单击以选择“无优化”。
9.单击以选中“创建符号调试信息”复选框。
10.单击“常规”选项卡,将“项目名称”更改为 VB6DlltoCall,然后单击“确定”。
11.在“文件”菜单上,单击“生成 VB6DlltoCall.dll”。
12.单击以选择“Visual Basic 6.0”文件夹,然后单击“确定”,保存 VB6DlltoCall.dll。

注意:Visual Basic 6.0 项目存储在“Visual Basic 6.0”文件夹中。
13.在“项目”菜单上,单击“VB6DlltoCall 属性”。
14.在“组件”选项卡上,单击以选择“二进制兼容性”,然后单击“确定”。
15.在“文件”菜单上,单击“保存项目”,然后单击“Visual Basic 6.0”文件夹,保存类和项目文件。

注意:VB6Class.cls 是您调试的类文件的名称。因此,您只需接受默认名称。
16.在“文件”菜单上,单击“生成 VB6DlltoCall.dll”。

注意:当您再一次创建该文件时,会出现一条消息,提示会覆盖现有文件。允许编译器覆盖现有 DLL。
17.在“文件”菜单上,单击“退出”,以关闭 Visual Basic 6.0 项目。
18.打开包含该 DLL 的“Visual Basic 6.0”文件夹。
19.右键单击该 DLL,然后单击以选择“属性”。
20.单击“安全”选项卡。
21.单击“添加”按钮。
22.键入计算机名称/ASPNET,然后单击“检查名称”,验证您是否找到了 ASP.NET 帐户。

注意:用您的计算机名称替换计算机名称。ASP.NET 帐户是 ASP.NET 辅助进程在其中执行的用户帐户。如果您禁止此帐户执行 DLL,则不会创建类,并且它会因“Access Denied”(拒绝访问)错误而失败。
23.单击“确定”。
24.验证是否为 ASP.NET 帐户选中了“读取和执行”,然后单击“确定”。
返回页首

创建 ASP.NET 项目

1.启动“Visual Studio .NET”。
2.在“文件”菜单上,指向“新建”,然后单击“项目”。
3.在“新建项目”对话框中,单击以选择“项目类型”下的“Visual Basic 项目”,然后单击以选择“模板”下的“ASP.NET Web 应用程序”。
4.在“位置”文本框中,键入 http://本地主机/ASP.NET 项目作为项目名称。

注意:在项目名称中,“http://本地主机”将在您的本地服务器上创建应用程序。
5.单击“确定”创建项目。
返回页首

调试

1.在 ASP.NET 项目中,单击“项目”菜单,然后单击“添加引用”。
2.单击“浏览”,然后单击“VB6DlltoCall.dll”(以前创建的)。
3.单击“打开”,然后单击“确定”。
4.将工具箱中的按钮添加到 Webform1.aspx 中。
5.双击“按钮”,然后在 Webform1.aspx.vb 中将下面的代码添加到“Button1_Click”事件中:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   Dim cls As New VB6DlltoCall.VB6ClassClass()
   Button1.Text = cls.showButtonValue
End Sub
6.在“生成”菜单上,单击“生成解决方案”。
7.在“调试”菜单上,单击“开始执行(不调试)”。

注意:在不进行调试的情况下将所创建的应用程序启动一次,以确保 ASP.NET 辅助进程启动并且您可以在下一步中附加到该辅助进程。
8.在“调试”菜单上,单击“进程”。
9.在“进程”对话框中,单击以选择“可用进程”下的“aspnet_wp.exe”,然后单击“附加”。
10.在“附加到进程”对话框中,单击以选中“本机”复选框和“公共语言运行库”复选框。

注意:如果没有本机调试选项,则说明没有安装 Microsoft Visual C++ .NET。必须安装 Visual C++ .NET,调试才能正确工作。
11.单击“确定”,然后单击“关闭”。

注意:如果单击“确定”,调试器可能需要五分钟时间进行附加。
12.在 Visual Studio .NET IDE 中,指向“文件”菜单上的“打开”,然后单击“文件”。
13.单击“Visual Basic 6.0”类文件 (VB6Class.cls),然后单击“打开”。
14.在 VB6Class.cls 文件中的以下代码行中设置中断点:
showButtonValue = 1000
15.切换到 Web 浏览器窗口,该窗口是您在第 7 步中单击“开始执行(不调试)”时随 .aspx 页一起打开的。
16.单击 Webform.aspx 页上的“按钮”。

这将命中“Visual Basic 6.0”类文件中的中断点。
返回页首

参考

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
170946 HOWTO:Create and Use a Minimal ActiveX Component in VB


303845 HOWTO:Create or Open a Visual Studio .NET Project in the Root Web

这篇文章中的信息适用于:
Microsoft Visual .NET 2002 标准版
Microsoft ASP.NET (included with the .NET Framework) 1.0
Microsoft Visual Basic 6.0 专业版
Microsoft Visual Basic 6.0 企业版
Microsoft Visual Basic .NET 2003 标准版
Microsoft ASP.NET (included with the .NET Framework 1.1)
关键字: 
kbwebforms kbdll kbcominterop kbweb kbdebug kbhowtomaster KB811658
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值