Visual Studio 在调试模式下附加到进程

问题描述 投票:0回答:2

我有一个奇怪的问题。

我在 c++ Visual Studio 2010 中构建的 dll(让我们称之为 my.dll)使用第三方库(比如 tp.lib),该库又调用第三方 dll(比如 tp.dll)。

为了调试目的,我在配置属性->调试->命令中设置:Excel.exe 和配置属性->调试->commandArguments:“$(TargetPath)”

在我的电脑中,我还将 PATH 变量设置为 tp.dll 所在的目录

现在,当我在 Visual Studio 中按下 F5 时,Excel 将打开 my.dll 并崩溃,给出“无法在 Dos 模式下打开”错误。发生这种情况的原因是部署 my.dll 的调试版本时未部署 tp.dll。

当我单独打开 Excel 实例并手动删除 my.dll 的调试版本时,一切正常,我可以看到我在 my.dll 中编写的所有函数

现在唯一的问题是我不知道如何调试,因为我不知道如何将 Visual Studio 附加到我单独打开的 Excel 实例。

我的问题是:

1> 如何将 Visual Studio 附加到已打开的 Excel 实例

2> 如何在按下 F5 的同时让 Excel 在开始部署 my.dll 之前从 PATH 变量中指定的目录中获取所需的 tp.dll。

这两者中的任何一个都将允许我单步执行代码以进行调试。

提前致谢。

c++ visual-studio-2010 excel debugging dll
2个回答
1
投票

好吧,我通过反复试验找到了一种方法

  1. 构建调试 dll。
  2. 打开 Excel 实例并将 my.dll 从调试文件夹拖放到该实例中。
  3. 在 Visual Studio 2010 中:属性->配置属性->调试->命令 = excel.exe
  4. 属性->配置属性->调试->附加=是

现在你在 Visual Studio 中按下 F5。这会将 Visual Studio 编辑器附加到 my.dll 的运行副本,从而允许单步执行代码。


0
投票
  1. 除非您使用 Express 版本,否则您可以 将 Visual Studio 附加到正在运行的进程
  2. 我会将
    tp.dll
    复制到包含
    my.dll
    的文件夹中。
© www.soinside.com 2019 - 2024. All rights reserved.