2017-09-15 40 views
0

我使用的使用Visual Studio 2013在Visual Basic编写,并尝试使用debuger代码在一个DLL,是工作目录以外的外部DLL。该DLL是一个C++项目,主要的应用程序是一个VB项目。使用VB,VS 2013如何使用工作目录

我该怎么做?在C++中,它看起来很简单,但与VB无关。

下面是清一色的背景。我一般对上述问题感兴趣,这只是最新的表现。 完整的故事:我试图调试VB程序,并用C++编写的DLL。我将该DLL复制到VB exe目录的工作目录中。但是它给了我一个工具提示,在DLL源代码的中断点处,它显示“断点当前不会被命中,没有为此文档加载符号”。我试图找出是否解决了这个问题。如果确实如此,它确实如此。如果没有,它不会。

+0

只有最后一段似乎是有道理的。您的VB程序加载了本机C++ DLL之前,您设置的任何断点都无法布防。无论执行什么语句,通常是调用一个声明为[DllImport]或Declare语句的方法。您还必须启用非托管调试器。调试器的Debug> Windows> Modules窗口显示加载的内容,如果它不在列表中,则断点无法工作。 –

+0

@Hans,你100%正确。只有最后一段有意义。我编辑了第一段。我并没有说清楚,我试图让调试器进入该dll。(这是最点!)希望这有助于。谢谢你的帮助。 –

回答

0

Pehaps你应该对调用(enter link description here)拨打电话和进口该.dll文件。另一种选择是在gac中注册dll并为你的库制作wrapper com。

你也应该将库添加到您的.NET应用程序如下:

xcopy "$(SolutionDir)DLL\$(ConfigurationName)"\*.dll "$(TargetDir)"*.* /Y 

项目 - >属性 - >编译 - >生成事件 - >生成后事件命令行通过命令。

相关问题