调试 DLL 的方法
本节中的每个项目都会创建一个 DLL。您不能直接运行 DLL;它必须由应用程序调用,通常是 EXE。有关详细信息,请参阅创建和管理 Visual C++ 项目。调用应用程序可能符合以下任一条件:
在包含类库的同一 Visual Studio 解决方案中的另一个项目中构建的应用程序。
已部署在测试或生产计算机上的现有应用程序。
位于 Web 上并通过 URL 访问。
包含嵌入 DLL 的网页的 Web 应用程序。
调试调用应用程序
要调试 DLL,首先要调试调用应用程序,通常是 EXE 或 Web 应用程序。有几种方法可以调试它。
如果您有调用应用程序的项目,则可以打开该项目并从“调试”菜单开始执行。有关详细信息,请参阅 b0fe0ce5-900e-421f-a4c6-aa44ddae453c。
如果调用应用程序是已经部署在测试或生产计算机上并且已经在运行的现有程序,您可以附加到它。如果 DLL 是 Internet Explorer 承载的控件或网页上的控件,请使用此方法。有关详细信息,请参阅 636d0a52-4bfd-48d2-89ad-d7b9ca4dc4f4。
您可以从 DLL 项目中对其进行调试。有关详细信息,请参阅如何:从 DLL 项目进行调试。
您可以从 Visual Studio 即时窗口对其进行调试。在这种情况下,立即窗口扮演应用程序的角色。
在开始调试调用应用程序之前,通常需要在类库中设置断点。有关详细信息,请参阅 fe4eedc1-71aa-4928-962f-0912c334d583。当断点被命中时,你可以单步执行代码,观察每一行的动作,直到你找出问题所在。有关详细信息,请参阅 8791dac9-64d1-4bb9-b59e-8d59af1833f9。
网页上的控件
若要调试网页控件,请创建一个嵌入它的 ASP.NET 页面(如果这样的页面尚不存在)。然后在网页代码和控制代码中放置断点。然后从 Visual Studio 调用网页。
在开始调试调用应用程序之前,您通常需要在 DLL 中设置断点。当断点被命中时,你可以单步执行代码,观察每一行的动作,直到你找出问题所在。有关详细信息,请参阅 FE4EEDC1-71AA-4928-962F-0912C334D583。
即时窗口
您可以在没有调用应用程序的情况下评估 DLL 中的函数或方法。您进行设计时调试并使用“立即”窗口。要以这种方式进行调试,请在 DLL 项目打开时执行以下步骤:
打开调试器立即窗口。
要在 Class1 类中测试名为 Test 的方法,请通过在“立即”窗口中键入以下 C# 代码来实例化 Class1 类型的对象。此托管代码适用于 Visual Basic 和 C++,并进行了适当的语法更改:
Class1 obj = new Class1();
在 C# 中,所有名称都必须是完全限定的。此外,任何方法或变量都必须在调试会话的当前范围和上下文中。
假设 Test 采用一个 int 参数,使用即时窗口评估 Test:
?obj.Test(10)
结果将打印在立即窗口中。
您可以通过在其中放置断点然后再次评估该函数来继续调试 Test:
?obj.Test(10);
断点将被命中,您将能够单步执行测试。执行离开测试后,调试器将返回设计模式。
欲了解更多信息,请访问Debugging DLL Projects。希望这会有所帮助...