利用VS2010工具,调试DLL文件的方法现总结如下:

在一个解决方案中生成两个工程,假设MYDLL和MYDLG两个工程,前者是DLL工程,后者DLG调用前边的DLL工程。设置如下:

目录如下:图,本文例子中,DLL文件和EXE文件都生成在下边的这个DEBUG文件中:D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug,当然,也可以生成在其他文件目录下,只要设置正确即可。

 
    目的:遵循DLL和exe最后生成的文件在一个目录内,且两个工程之间有种关联,使EXE工程能够调用DLL工程。
首先编译DLL工程。
接着,进行下边的设置。

一、MYDLG工程设置

1.MYDLG工程采用调用静态MFC

2.输出目录要和将要生成的DLL文件在一个目录下,如设为D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug

3.采用静态调用DLL的方式调用我自己生成的lib文件 (很关键),如果采用动态调用,就需要用loadlibrary函数,并为每个导出的函数重新命名。

 
添加库目录或者添加到附加库目录中,两者原则上都可以,首选修改附加库目录
添加到库目录如下图,目录为D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug
 
 
添加到附加库目录中,如下图

这样,DLG工程就和DLL工程之间建立了关联。

接下来,再来设置DLL工程。。。。。。

二、MYDLL工程里面设置:

1、MYDLL工程采用静态链接库,

2、输出目录采用默认目录如D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug

3、设置本地Wiindows调试器中命令参数为DLG工程上边生成的exe文件路径,如D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug(关键)。

(题外话:如果已经有一个写好的EXE,可以把已经存在的exe随便放在一个路径下,然后在此处的命令参数中设置好exe的路径,之后就可以启动dll,单步调试dll了)

这样DLL就和DLG工程间建立了关联。

之后,就可以再DLG工程中调用DLL工程中的接口函数了。

VS2010 C++环境下DLL和LIB文件的生成与调试的更多相关文章

  1. VS2010 C++环境下DLL和LIB文件的生成与调试 备忘

    利用VS2010工具,调试DLL文件的方法现总结如下: 在一个解决方案中生成两个工程,假设MYDLL和MYDLG两个工程,前者是DLL工程,后者DLG调用前边的DLL工程.设置如下: 目录如下:图,本 ...

  2. VS2010 C++环境下DLL和LIB文件目录及名称修改

    VS2010 C++环境下DLL和LIB文件目录及名称修改 转自:http://blog.csdn.net/archielau/article/details/8507581 DLL工程,Debug版 ...

  3. Code::Blocks环境下导入WS2_32.lib文件

    打开菜单选项中 Settings -> Compiler 点击Add 找到lib文件的路径,导入 点击OK--OK,完成!

  4. c++中.dll与.lib文件的生成与使用的详解

    两种库: • 包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library.• 包含函数代码本身,在编译时 ...

  5. 水晶报表在vs2010 WPF环境下的尝试

    原文:水晶报表在vs2010 WPF环境下的尝试 由于VS2010没有集成水晶报表组件,尝试前必须先安装 水晶报表 for VS2010,若机器未安装的可点击这里>>>下载安装 新建 ...

  6. MFC中的DLL、LIb文件的创建、使用

     动态链接库Dynamic-Linked Lib 的创建与使用 动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软 ...

  7. VC6.0 设置动态链接库工程生成dll以及lib文件的位置

    在"Projet"->"Settings..."的"Link"选项卡中 "Output file name"中设置 ...

  8. windows环境下svn同步web文件[转]

    windows环境下svn同步web文件 SVN在团队开发中使用非常普遍,是一个很方便的版本控制系统. 如果要是能将SVN服务器上的数据自动发布到Web服务器,那将是整个项目开发.测试更加便捷.利用S ...

  9. FormData使用方法详解,以及在IE9环境下,前端的文件上传问题

    FormData的主要用途有两个: 1.将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率. 2.异步上传文件 一.创建formData对象 ...

随机推荐

  1. Python3 使用 matplotlib 画折线图

    ChartUtil.py import matplotlib.pyplot as plt from pylab import mpl def plotLine(xData,yData,xLabel,c ...

  2. 文字编码和Unicode

    文字编码和Unicode 说明文字: https://blog.csdn.net/fengzhishang2019/article/details/7859064 Java 程序: https://w ...

  3. centos 新建swap区文件

    一. 相当详细且流程完整,(推荐阅读) 在centos7上新建swap区 https://www.digitalocean.com/community/tutorials/how-to-add-swa ...

  4. 【Python】使用geopy由经纬度找地理信息

    from geopy.geocoders import Nominatim geolocator = Nominatim() location = geolocator.reverse("3 ...

  5. Virtualbox安装Ubuntu

    每次安装虚拟机都是总要折腾一下,毕竟不是特别熟悉,几个小细节总要google半天,为了以后能愉快的玩耍.把这些问题都记录下来,免得再折腾. 此文档都来自其他人的文章,我保存在Evernote整理. 网 ...

  6. LNMP(Linux+Nginx+MySQL+PHP)centos6.4安装

    nginx命令 停止nginx服务:# /etc/init.d/nginx stop 启动nginx服务:# /etc/init.d/nginx start 编辑nginx配置文件:# vim /et ...

  7. JS判断页面加载完毕

    //JS判断页面加载完毕,再隐藏加载效果层,一个简单的JS加载效果. document.onreadystatechange = function () { if (document.readySta ...

  8. javascript编程思想

    javascript编程开发修炼之道   提要文摘附注: 本文的核心内容是围绕javascript前端开发的编程技术要素,来深入地探讨编写高质量的javascript代码的方法.技巧.规范和最佳实践, ...

  9. 一次性解决Intellij IDEA maven 自动跳到1.5的JDK

    说明:文章学习自:https://blog.csdn.net/Zereao/article/details/77427989 一.找到Setting.xml文件 打开setting.xml 说明,该文 ...

  10. flume监控

    Flume本身提供了http, ganglia的监控服务,而我们目前主要使用zabbix做监控.因此,我们为Flume添加了zabbix监控模块,和sa的监控服务无缝融合. 另一方面,净化Flume的 ...