从VB6 DLL项目调试C#.Net DLL项目

时间:2013-03-21 23:38:18

标签: c# debugging dll vb6

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

我的VB6 DLL项目中引用了.Net的DLL。 最终的VB6 DLL项目在我的VB6 EXE项目中被引用。

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

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

我是否必须更改VB6 DLL项目中的引用(.Net DLL)才能在调试中获取它?

欢迎您提供所有有效输入。 (请逐步说明我需要做的程序)

提前致谢。

3 个答案:

答案 0 :(得分:1)

您应该能够通过将Debug下的启动操作设置为

来调试C#.NET dll
  

启动外部程序

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

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

要访问您尝试调试的代码,还有多少其他dll(.NET或其他版本)无关紧要。

答案 1 :(得分:1)

啊vb6 :)已经很久了......

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

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

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

答案 2 :(得分:-4)

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