1

我有一个调用 dll 中的函数的 vb 项目。该dll是在一个单独的vs项目(portaudio)中创建的,它是用c编写的。

dll c项目编译干净并构建所需的dll,我目前将其放入c:\windows\system到vb运行时可以看到它。

VB 项目位于 c:\devprojects\vbtest

C 项目位于 c:\devprojects\portaudio,项目文件位于 c:\devprojects\portaudio\build\msvc。在此 msvc 目录下的 Win32\debug 中创建的 Dll。

当我调用dll函数时,vs调试器是否可以单步调试dll中的c函数-我有所有代码等,但我不知道VS2005是否支持这种混合语言调试。

如果这是可能的,您能否建议我应该如何设置我的 Visual Studio 来实现这一点。

非常感谢大卫

4

3 回答 3

4

不必将两个项目都放在同一个解决方案中,但您应该在启用调试符号的情况下编译这两个项目。

现在在您的 VB 网络解决方案项目/属性中,在“调试”选项卡中确保选中“启用非托管代码调试”。

还要确保加载的 dll 与编译它的位置相同,否则它可能找不到存储调试符号的 pdb。

于 2009-01-26T15:19:36.940 回答
0

使用两个项目创建一个解决方案,使用“添加引用..”对话框 -> 项目将 VB 项目中的引用添加到 C 项目,并在调试模式下构建它们。

你如何从VB调用C dll?

于 2009-01-26T11:55:27.493 回答
0

如果它是 VB.NET,那么这很容易,只需设置一个包含两个项目的解决方案,设置它们的依赖项并确保在构建 VB 项目的调试版本时链接到从 C++ 项目生成的调试 lib/dll . Visual Studio 完成其余的工作。

我之前已经用 C# 应用程序调用 C++ dll 做过几次。我不打算设置它,但尝试在调试时单步执行,假设我会得到程序集列表并且至少可以解决我的代码出了什么问题......但是它加载了正确的 .cpp 文件和允许我继续单步执行该代码。

于 2009-01-26T14:56:56.363 回答