gpt4 book ai didi

c# - 调试调用 .Net(C#) dll 的 VB6 项目

转载 作者:太空狗 更新时间:2023-10-29 19:59:55 25 4
gpt4 key购买 nike

我已经被这个问题困扰了几个小时了。我希望有人遇到过类似的问题。

我们使用 VS2010 开发了一个原型(prototype) .Net(C#) dll,并希望能够在 C# 应用程序和 VB6 应用程序中调用此 dll。

我的问题是:

是否可以调试调用 .Net dll 的 VB6 应用程序?我收到错误消息“Automation Error The system cannot find the file specified

错误消息表明我的 VB6 应用缺少一些东西来查找 .Net dll。

我知道如果已经编译了 VB6 应用程序,并且已经创建了 .exe,VB6 将在使用 .exe 时成功调用 .Net dll 功能

但是,重要的是我们可以通过 VB6 应用程序进行调试。遗憾的是,调试不允许您越过实例化 .Net DLL 类对象的代码行。我似乎无法做到这一点。

注意:我浏览了论坛和 MSDN 文档,主要找到了在 .NET 中调用 VB6 dll 的解决方案;不幸的是,这与我们需要做的相反。

注意:我已经注册了编译后的.Net(C#)程序集,并在VB6项目中引用了它。

然而我找到了这两个页面,这似乎是我们需要的,但它是调用使用 VS2005 生成的 .NET(c#) dll 的解决方案。当使用 VS2010 生成 .NET(C#) dll 时,这似乎不起作用。

site1 site2

如果有人可以提供任何建议或指导我去某个地方,我可以得到一个,那就太好了。

谢谢

解决方案感谢@HansPassant,我找到了解决方案。要调试包含 C# .NET 程序集的 VB6 项目,您需要通过“regasm”和“gacutil”注册 .NET dll,然后确保关闭并在开始调试之前重新打开 VB6 应用程序。

最佳答案

这不是问题,VB6 使用自己的调试器,不会妨碍任何其他调试器,包括用于 C# 代码的托管调试器。

您从 C# 类库项目开始,确保选择它作为启动项目。项目 + 属性,调试选项卡。选择“启动外部程序”选项并输入 VB6 IDE 的路径。通常为 c:\program files\microsoft visual studio\vb98\vb6.exe。在要调试的方法上设置断点。

按 F5,VB6 ide 将开始运行。加载或创建您的 vb6 项目。请注意如何在上一步中将路径添加到 .vbp 项目,以便它自动加载您的项目。

像往常一样开始调试您的 vb6 项目。一旦它开始使用您的 [ComVisible] C# 类,您的 C# 程序集就会被加载。当您的 vb6 代码调用该方法时,断点将命中。根据需要来回切换。请注意,您不能从 vb6 单步执行到 C# 代码,您必须设置断点以使调试器停止。

关于c# - 调试调用 .Net(C#) dll 的 VB6 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15361711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com