4

我有 ac# dll,它被编写为充当包装器,以从数据源中获取数据并将其传递给 vba/powerpoint ppa 应用程序。我对 vba 没有太多经验,这就是为什么我要使用 vb6 来模拟它,我对此稍微了解一点。

到目前为止,我有足够的问题试图理解语法以及 com 和 ccw 的复杂工作方式。所以我正在寻找一种方法来调试为什么该函数没有返回任何数据,并且如果可能的话,在 vb6 应用程序调用它时对 .net dll 进行逐行演练。

最初我想在 .net dll 中放入一个函数,该函数将写入外部文件,但这似乎不起作用,我不知道为什么。

我做了一些谷歌搜索,发现有一个附加到进程的过程,这可能对我的情况有用,但该功能仅在 vs studio 完整版中可用

所以我希望有其他工具,我可以使用的方法可以让我正确调试 vb6/vba 应用程序和 .net dll 之间发生的事情。

谢谢。

4

4 回答 4

7

太糟糕了,您无法使用流程附加功能,因为这是要走的路。

在 .net dll 中放置好Debug.Assert(false);是强制调试器出现的一种方法。

您也可以尝试Debugger.Break();强制断点并询问您是否要附加调试器。

两者DebugDebugger都在System.Diagnostics命名空间中。

于 2009-08-18T03:31:04.920 回答
3
  1. 在 Visual Studio 中为 C# 项目打开项目属性。
  2. 转到调试页面。
  3. 选择“启动外部程序”并浏览到 VB.exe(很可能是 C:\Program Files\Microsoft Visual Studio\VB98\VB6.EXE。
  4. 可选:在命令行参数中输入 VB6 项目的 .vbp 文件的路径。

当您运行 C# 项目时(调试->开始调试或 F5),它将启动 VB6。您可以在 C# 项目中放置所需的任何断点。当您启动您的 VB6 项目时,调试器将在您的 VS2005/2008 断点处停止。您还可以在调试 C# 项目时使用即时窗口和任何其他调试选项。

于 2009-08-19T00:15:50.900 回答
2

添加这个

<StartAction>Program</StartAction>
<StartProgram>C:\Program Files\NUnit-Net-2.0 2.2.8\bin\nunit-gui.exe</StartProgram>

到我的 C# Express 2008 项目的 .csproj 文件中,在 PropertyGroup 元素下,为我做了诀窍(详情请点击此处)。

于 2011-09-23T10:49:43.333 回答
0

在 Visual C# Express Edition 的基础上下载并安装 Visual C++ Express Edition。两者都是完全免费的,这将使您能够在调试器中“附加到进程”

于 2010-01-15T09:21:19.767 回答