3

我有三个项目,一个是编译成 EXE 的 VB6 项目。另一个也是一个VB6项目,它编译成一个DLL。最后一个是编译为 DLL 的 .Net (2010) 项目。

.Net 的 DLL 在我的 VB6 DLL 项目中被引用。生成的 VB6 DLL 项目在我的 VB6 EXE 项目中被引用。

在这种情况下,如何调试我的 .Net DLL 项目?

在这两种情况下都失败(或无法调试),即使我将(VB6 DLL)进程附加到我的 .Net DLL 项目,或者我在 .Net DLL 项目上为我的 VB6 DLL 项目设置了“启动外部程序” .

我是否必须更改我的 VB6 DLL 项目上的引用 (.Net DLL) 才能使其进入调试状态?

欢迎您的所有有效输入。(请逐步解释我需要做的程序)

提前致谢。

4

3 回答 3

1

您应该能够通过将调试下的启动操作设置为来调试 C#.NET dll

启动外部程序

并将 VB6 可执行文件指定为程序。

我知道这很有效,因为我使用它为旧的 VB6 应用程序调试 .NET/C# 插件。

您必须通过多少其他 dll(.NET 或其他)才能访问您尝试调试的代码,这无关紧要。

于 2013-03-21T23:47:41.123 回答
1

啊 vb6 :) 好久不见了....

基本上,您不能在 VB6 IDE 中调试 .NET 代码。

但是,没有什么能阻止您创建 .NET 测试项目来对 .NET dll 进行单元测试。这就是您在 VB6 中引用它之前应该做的事情。

如果您需要跟踪特定问题,您可以使用的另一种方法是将调试信息写入文件/数据库/事件视图/...当 dll 处于调试模式时,例如调用了哪些函数、参数、堆栈跟踪...

于 2013-03-21T23:56:16.457 回答
-4

这可能不正确,但我相信 VB 2010 使用什么?.NET 4.0,对吧?我相信 VB6 是在 1994 年创建的,所以它应该是 <= .NET 1.0。二进制文件很可能不兼容。

于 2013-03-21T23:42:46.990 回答