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 应用程序,请使用下列方法之一:
本文介绍了如何使用第二种方法调试 ASP.NET 中使用的 Visual Basic 6.0 DLL。您应使用 DLL 运行时所使用的同一二进制文件调试 DLL(不包括任何优化)。这将创建一个执行过程,该过程比您在 Visual Basic 开发环境中进行调试时接收到的 P-代码容易调试。
返回页首
下面概括列出了推荐的硬件、软件、网络结构以及所需的 Service Pack:
本文假定您熟悉下列主题:
返回页首
返回页首
返回页首
返回页首
要调试 Visual Basic 应用程序,请使用下列方法之一:
• | 使用 Visual Basic 开发环境。 在开发环境中进行调试时,要使用 P-代码。P-代码是一种解释语言,通过它,您可以在开发环境中进行调试。 - 或者 - |
• | 如果在 Visual Basic 开发环境中进行调试时没有问题,但编译后的版本中确实又出现问题,则应使用本机调试器。 |
返回页首
要求
下面概括列出了推荐的硬件、软件、网络结构以及所需的 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. | 将以下代码添加到您的类中,以在类中创建一个公共方法:
|
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”事件中:
|
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 文件中的以下代码行中设置中断点:
|
15. | 切换到 Web 浏览器窗口,该窗口是您在第 7 步中单击“开始执行(不调试)”时随 .aspx 页一起打开的。 |
16. | 单击 Webform.aspx 页上的“按钮”。 这将命中“Visual Basic 6.0”类文件中的中断点。 |
参考
这篇文章中的信息适用于:
• | 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 |