vs 2008调试DLL的方法(转载)

news/2024/7/8 2:09:16

对DLL的调试是一个热门话题,上网搜索了一下,发现很多相关的信息,但几乎全部是没有进行验证的摘抄,很鄙视这种行为。所以我在浏览的一些国外的网站后,结合自己的经验写下我在vs 2008编译平台上调试DLL的方法。按照我描述的方法如果你还不能在DLL里打断点进行调试的话,那就找块板砖,拍我,或者拍你自己!

在 C++ 项目中指定调用应用程序

  1.  

    在“解决方案资源管理器”中选择 DLL 项目。

  2.  

    从“视图”菜单中,选择“属性页”。

  3.  

    在“Project 属性页”窗口的“配置”下拉列表中,选择“调试”。

  4.  

    打开“配置属性”文件夹并选择“调试”类别。

  5.  

    在“要启动的调试器”列表框中,选择“本地 Windows 调试器”或“远程 Windows 调试器”。

   关键是第六条和第七条,这才是这个方法的精髓部分。

    6.  在“命令”或“远程命令”框中,单击下拉箭头,并从列表中选择“浏览”以浏览指定应用程序,或键入应用程序的路径和名称。

    方法:在“命令”中输入rundll32.exe。

    7.  在“命令参数”框中键入所有需要的程序参数。

    方法:在“命令参数”框输入 $(TargetFileName)  XXX,其中XXX表示你DLL导出函数的函数名。

                在“工作目录”框中输入  $(OutDir) 。

   其实“命令参数”和“工作目录”两个框是可以通过点击来进行设置的,由于设置时描述麻烦,就直接输入好了,有兴趣的朋友可以试试怎么设置,设置过程并麻烦的!

 

好的,设定部分结束了,这是你可以在代码里设定断点,按F5,就可以运行了,这时候会弹出一个对话框,说rundll32.exe不能找到,不用理他,点击“是”按钮,继续运行!看看是不是到你的断点处停了下来?

 

转载自:http://blog.163.com/yuxiangdingdang@126/blog/static/1087978520102112285825/

转载于:https://www.cnblogs.com/sql4me/archive/2010/06/24/1764478.html


http://www.niftyadmin.cn/n/3369342.html

相关文章

jdk1.8 中 ArrayList扩容部分源码

2019独角兽企业重金招聘Python工程师标准>>> ArrayList 作为Java常用的一种数据结构,是基于数组实现的,是一个动态数组,其容量能自动增长。 ArrayList动态扩容的全过程。如果通过无参构造的话,初始数组容量为0&#xf…

ASP.NET CORE下运行CMD命令

ASP.NET CORE下运行CMD命令,用以前的ASP.NET 的命令System.Diagnostics.Process.Start("notepad");这样是可以运行出记事本的, 现在公司的C大神开发了个EXE,需要放在服务器上,然后当访问服务器上的某个网页的时候就执行…

iOS RAC 的使用总结 (转载)

ReactiveCocoa(简称RAC),是GitHub上开源的一个应用于iOS和OS X开发的一个新框架.RAC具有函数式编程和响应者编程的特性. ReactiveCocoa解决的问题: 1.传统iOS开发过程中,状态以及状态之间依赖过多的问题2.传统MVC架构的问题:Controller比较复杂,可测试性差3.提供统一的消息传递…

机器学习A-Z~支持向量机

本文将介绍机器学习中一个非常重要的算法,叫做SVM,中文翻译支持向量机。首先看一组例子来解释这个算法。 基本概念 有一组数据如图所示,有红色的点和蓝色的点,代表了两种分类的数据,现在我们要做的是如何将这两种数据准…

leetcode 301. Remove Invalid Parentheses

题目要求 Remove the minimum number of invalid parentheses in order to make the input string valid. Return all possible results.Note: The input string may contain letters other than the parentheses ( and ).Examples: "()())()" -> ["()()()&q…

C语言程序员不会告诉你的14个工具和插件 | 收藏 ...

关注我并收藏这篇文章,可以私信我领取这篇文章内所有的工具和插件!koz.ross 维护的一个 C 语言资源列表,包括了:构建系统、编译器、数据库、加密、初中高的教程/指南、书籍、库等等。 1.构建系统 下面是一些 C 项目的自动化构建和…

初学者第04节之数据类型(上)

1.Java是一种强类型语言,每个变量都必须声明其类型。 Java的数据类型分为两大类:基本类型(primitive type)和引用类型 (reference type) Java中定义了3类8种基本数据类型,今天主要讲讲基本数据类型。如…

require.context() 用于获取一个特定上下文的,webpack的一个api

参考链接: 1、https://www.jianshu.com/p/c894ea00dfec 2、https://www.jianshu.com/p/c894ea00dfec require.context() 1、可以使用require.context()函数创建自己的上下文。它允许您传入一个,目录进行搜索,一个标志指示是否应该搜索子目录&…