我有一个调用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来实现这一目标。
非常感谢 大卫
答案 0 :(得分:4)
没有必要在同一个解决方案中同时拥有这两个项目,但是您应该在启用了调试符号的情况下编译这两个项目。
现在,在VB网络解决方案Project / Properties中,在Debug选项卡中确保选中“启用非托管代码调试”。
还要确保加载的dll与编译它的位置相同,否则可能找不到存储调试符号的pdb。
答案 1 :(得分:0)
使用两个项目创建解决方案,使用“添加引用...”对话框将VB项目中的引用添加到C项目 - >将它们全部调试并以调试模式构建。
你如何从VB调用C dll?
答案 2 :(得分:0)
如果它的VB.NET那么这很容易,只需设置一个解决方案,在它下面的两个项目,设置它们的依赖关系,并确保在构建VB项目的调试版本链接到从中生成的调试lib / dll你的C ++项目。 Visual Studio完成剩下的工作。
我已经在C#应用程序调用C ++ dll之前做了几次。我不打算设置它,但尝试逐步调试,假设我会得到汇编列表,并且至少可以解决我的代码出错的问题...但是它加载了正确的.cpp文件和让我继续踩过那段代码。