我试图调试从Visual Studio 2010中我试图按照这些指令的C/C++本地DLL项目: http://msdn.microsoft.com/en-us/library/c91k1xcf(v=VS.100).aspx调试Visual Studio 2010的DLL项目
我想使用内置的调试器,并能像步骤执行常规.exe项目一样执行代码,检查结构等。上面的页面上的说明描述了一个调试类别配置属性,我没有看到。
http://img707.imageshack.us/img707/4402/lalasz.png
只需按F5键下面的错误调试结果:
Unable to start program 'C:\Users.......Test.dll'
我用调试器进行定期的.exe项目很多次,它工作正常,这台计算机上。但我不确定是否现在只是错过了一些非常明显的东西。
编辑:由于我从一开始就没有说清楚,我希望Visual Studio能够将我的DLL加载到一个存根过程中,并让我在源代码级别进行调试,就像OllyDbg的做法一样。
我的DLL不是包含一堆要导出和调用的函数的类型。相反,它在DllMain中执行一个开关/情况,并在DLL_PROCESS_ATTACH上产生一个新线程。因此,我需要Visual Studio做的是将我的DLL加载到存根可执行文件中,并允许我设置断点等。
感谢汉斯。调试选项卡在那里,当我右键单击正确的地方,但我意识到我误解了页面。我其实不想指定一个可执行文件。理想情况下,VC++会将我的DLL加载到存根可执行文件上,并让我以这种方式进行分步操作。就像OllyDbg让你这样做。你知道这是可能的吗? – Mike 2010-09-07 19:42:20
不,VS需要一个.exe,任何.exe,加载DLL并调用您要测试的入口点。除了ActiveX测试容器之外,没有通用的.exe可以找出你导出的函数需要什么参数。单元测试总是一个不错的选择。 – 2010-09-07 19:59:37
我的DLL不是包含要导出和调用函数的类型。入口点将在dwReason上切换/ case,并且在DLL_PROCESS_ATTACH上会用CreateThread()产生一个线程,这将会做一些工作。同一个DLL能够在OllyDbg中使用“generic .exe”进行调试,该DLL只需使用一个在DLL上调用LoadLibrary的stub exe文件。我可以轻松创建自己的框架可执行文件,它可以完成同样的功能,但是我无法通过IDE对其进行调试。 – Mike 2010-09-07 20:03:38