Debugging DLL Projects in Visual Studio 2005
page 1 of 6
Published: 12 Jul 2007
Abstract
This article will walk you through the techniques used to debug the DLL projects in Visual Studio 2005 with the help of a sample application.
by Abhishek Kumar Singh
Feedback
Average Rating: 
Views (Total / Last 10 Days): 84158/ 66

Introduction

Dynamic Link Library (DLL) is a file (also called library) which contains executable functions or data that can be used by other applications. A DLL file has the extension "DLL" in its name. A DLL cannot run directly. DLL needs to be called by some other application or EXE to run. In fact, a DLL contains various functionalities to be used by various EXE (or other DLL).

·         If DLL's are placed in some central repository then multiple programs can use the functions of DLL's at the same time. Thus saving the storage space and duplication effort. In addition, if new features are added in the new version of DLL, older version can be replaced by newer and all executables would benefit. DLL's are called dynamic links as they are loaded in the memory (RAM) when it is called by the executables at run time. They run in the program's own memory space. Though a DLL is loaded just once and whenever any other program requests to use it then operating system just maps it to the program's address space. The idea behind using DLL's is "to have a library of commonly used functions which can be obtained by everyone as they needed."

·         Microsoft has written a number of DLL's for Windows to have standard functionalities and appearances for its Operating Systems and most of the programs. As multiple applications use the DLL's, replacing older versions with newer versions of DLL's should not cause stopping running applications. System may crash or behave strangely or a program might not function, if a certain DLL is missed or the wrong version of DLL is installed in the computer.


View Entire Article

User Comments

Title: Nice One   
Name: Marc
Date: 6/23/2011 7:27:27 AM
Comment:
Great article thanks so much! Nice and easy to understand
Title: FileNotFoundException error on debugging dll   
Name: Binkey
Date: 2/8/2011 4:55:58 PM
Comment:
When I do the above steps and press F5, I get an exception error "FileNotFoundException was unhandled box" stating "Could not load file or assembly 'AddDll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified."
AddDll is the dll name. How could it not find the file. I'm running it?
Title: call dll from an exe question not answered   
Name: jeanie
Date: 2/8/2011 4:31:50 PM
Comment:
Nobody answered the question titled "call DLL from exe". How do you get the debugger to step into the dll when running the exe? Please advise if your still there.
Title: debug DLL   
Name: Robat7
Date: 4/13/2010 10:09:03 AM
Comment:
Thank you so much
Title: Saving DLL other than the Output Directory   
Name: Ali Asim
Date: 3/19/2010 1:40:37 PM
Comment:
\
\S
\
Title: call DLL from exe   
Name: Arun
Date: 7/10/2009 2:16:16 AM
Comment:
Hi, nice article. But I'm stuck at a point and think you'l be able to help me. I've created a dll class library project and attached it to a process. I've placed both .dll and .pdb files in the bin folder of the exe application. I've put the breakpoints in my dll project and now start the exe. The process runs and when the dll is called, the control does not enter the class created in the dll(I've put breakpoints at relevant positions). The process completes, but the control does not enter class library.
What I am doing wrong?
Any suggestions would be welcome. Thanks in advance.
Title: Re: Would it be same in 2005   
Name: Abhishek (Author)
Date: 11/21/2007 2:16:32 AM
Comment:
you should find the DLL file in bin folder as follows:
project folder >> bin >> debug/realease >> dll file
if you missed to locate your project folder, try this:
(Be sure you have created a library project)
1. In the VS 2005 IDE, open solution explorer.
2. in the tree structure there should a "bin" node, exapand that node by clicking on +
3. then you should see Debug or Release, open +
4. now you can see you dll file in the list.
5. right click on the dll and click on properties and see the path of the dll in the properties, and collect the dll file then.

Hope it helps you. Thanks.
Title: Would it be same in 2005   
Name: Ram
Date: 10/19/2007 12:42:23 PM
Comment:
Hi, you have described very well; but will it be happen in VS 2005.I could not see any bin folder to see the DLL file once you build the application.Do we need to create manually bin folder
Title: Reason fo not keeping both projects in same solution   
Name: Abhishek Kumar Singh
Date: 7/22/2007 4:43:41 PM
Comment:
darren, thanx for your suggestion.. but intensionally i didn't keep both projects in same soluction. I wanted to show that each porjects could be at different location .. may be in same computer or different computer over LAN. Also in case of large projects client and server projects use to be developed separately by different developers/team.
Title: Add both projects to same solution   
Name: darren
Date: 7/22/2007 4:06:33 PM
Comment:
You missed the best solution.
Add both projects to the same solution. Set a ref in the EXE to the DLL project. Set startup project as the EXE.
Title: Great Article   
Name: Dhanabalan.R
Date: 7/15/2007 3:15:55 AM
Comment:
Hi Abishek

Nice and Useful articles for developers
Title: Nice article   
Name: Macho
Date: 7/12/2007 2:07:02 PM
Comment:
Very good article for DLL masters and real life programming.

Product Spotlight
Product Spotlight 





Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2014 ASPAlliance.com  |  Page Processed at 10/30/2014 7:05:51 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search