c - 调试 Visual Studio 2010 DLL 项目

标签 c debugging dll native visual-c++-2010

我正在尝试从 Visual Studio 2010 调试 C/C++ native DLL 项目。我正在尝试按照以下说明进行操作: http://msdn.microsoft.com/en-us/library/c91k1xcf(v=VS.100).aspx

我想使用内置调试器并能够像处理常规 .exe 项目一样单步执行代码、检查结构等。上面页面上的说明描述了配置属性 下的调试 类别,我没有看到。

http://img707.imageshack.us/img707/4402/lalasz.png

直接按F5调试会出现如下错误:

Unable to start program 'C:\Users.......Test.dll'

我已将调试器多次用于常规 .exe 项目,并且在这台计算机上运行良好。不过,我不确定我现在是否只是遗漏了一些非常明显的东西。

编辑:因为我从一开始就没有说清楚,我希望 Visual Studio 将我的 DLL 加载到 stub 进程中,让我从那里在源代码级别进行调试,就像 OllyDbg 的做法一样。

我的 DLL 不是保存一堆要导出和调用的函数的类型。相反,它在 DllMain 和 DLL_PROCESS_ATTACH 上执行 switch/case 将产生一个新线程。因此,我需要 Visual Studio 做的就是将我的 DLL 加载到 stub 可执行文件中,并允许我设置断点等。

最佳答案

您可能将生成 dll 的项目作为启动项目。

您有两个选择:将启动项目更改为另一个生成使用该 DLL 的可执行文件的项目,或者从项目属性配置 dll 项目的调试设置以启动使用该 dll 的外部应用程序(项目属性/调试/命令)。

关于c - 调试 Visual Studio 2010 DLL 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3662035/

相关文章:

c - 将结构成员数组传递给 C 中的函数

c - 生成范围 [l u] 内的随机数

javascript - 如何让 Visual Studio 2005 在脚本资源管理器中显示正在运行的 JavaScript 文件?

perl - 关于 perl 调试器中的 X 命令(显示变量)

c++ - 绕行函数在 printf 上崩溃

c - 使用 mmap 共享结构数组

c++ - 英特尔引脚 : how to detect realloc size

python - 找出哪些 PIP 模块真正在使用

c# - 如何正确地将多个 cv::Mat 从 c++ dll 传递到 opencvsharp Mat c#?

java - 在java中访问dll方法