Click here to Skip to main content
6,822,123 members and growing! (18,491 online)
Email Password   helpLost your password?
General Programming » DLLs & Assemblies » Beginners     Beginner

Creation of a Simple DLL

By VGirish

Steps to create your first DLL file
VC6, VC7Win2K, WinXP, Visual-Studio, MFC, Dev
Posted:28 Jun 2002
Views:201,070
Bookmarked:61 times
printPrint   add Share
      Discuss Discuss   Broken Article?Report  
48 votes for this article.
Popularity: 5.17 Rating: 3.07 out of 5
9 votes, 32.1%
1
7 votes, 25.0%
2
1 vote, 3.6%
3
3 votes, 10.7%
4
8 votes, 28.6%
5

Introduction

This article shows a step-by-step technique to create your first DLL with VC++.

Steps to Create Your First DLL

  • Create a Win32 Dynamic Link Library project, adding a *.cpp and a *.h file.
  • In the *.cpp file, create a class instantiated from the CWinApp file.
    # include <stdafx.h>
    # include "SourceFile.h"
    
    class CDllApp : public CWinApp
    {
        public:
      
            CDllApp::CDllApp()
            {
                Calc(0,0);
            }
    
            DECLARE_MESSAGE_MAP()
    };
    
    BEGIN_MESSAGE_MAP(CDllApp,CWinApp)
    
    END_MESSAGE_MAP()
    
    CDllApp DllObject;
  • In the *.h file (here it is SourceFile.h), define the functions to be used. Also specify the dllexport value for the _declspec function.
    extern "C" _declspec(dllexport) int Calc(char no1,char no2)
    {
        char result;
        result = no1 + no2;
        return result;
    }
  • Then compile the DLL.
  • Create a normal Win32 Application with a *.cpp file and a *.h file.
  • In the *.h file, (here it is AppHeader.h ), declare the function with the dllimport value of _declspec.
     extern "C" _declspec(dllimport) Calc(int FirstValue,
         int SecondValue);
  • In the *.cpp file, use the function.
    # include "AFXWIN.H"
    # include "AppHeader.h"
    
    class MainFrame : public CFrameWnd
    {
        public:
    
            MainFrame()
            {
                Create(0,"Trial");
            }
    
            void OnLButtonDown(UINT nFlags,CPoint point)
            {
                int res;
                char str[5];
                res = Calc(998,226);
                sprintf(str,"%d",res);
                MessageBox(str);
             }
    
             DECLARE_MESSAGE_MAP()
    };
  • In the Link tab of the "Project->Settings" dialog, go to the text box labeled "Object / Library Modules" and specify the path of the DLL file. Then copy the compiled DLL file to your current appliation path directory and run the program.

Some Things to Note

The DLL file may not be visible due to the File View options in the Windows folder. So, you can either go to the DOS prompt and copy the file or enable the setting "Show all files" in Windows Explorer to copy the file. To create a DLL that uses MFC, see the following example. Note that extern "C" has not been used and the macro AFX_MANAGE_STATE(AfxGetStaticModuleState()); has been used to implement MFC.

 _declspec(dllexport)CString Display(CString a,CString b)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    CString Str;
    Str = a + b;
    return Str;
}

That's all, folks. All luck and have a great time.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

VGirish


Member
www.geocities.com/contactgirish/AboutMe.html
Occupation: Web Developer
Location: India India

Other popular DLLs & Assemblies articles:

Article Top
You must Sign In to use this message board.
FAQ FAQ 
 
Noise Tolerance  Layout  Per page   
 Msgs 1 to 16 of 16 (Total in Forum: 16) (Refresh)FirstPrevNext
GeneralHow can i create a same type of dll in vb6? PinmemberJothiMurugeswaran19:19 13 Nov '07  
Questionbuilding dll (C++) to be called by C applications PinmemberP.Luke14:33 20 Apr '07  
GeneralDll-ASP.NET Pinmember1:10 23 Feb '07  
GeneralMessages PinmemberGipico4:32 27 Oct '06  
GeneralC DLL without changing the source code Pinmembersaflitzk11:47 8 Mar '05  
Generalproblem with dll Pinmemberdnqhung2:24 10 Jun '04  
GeneralRe: problem with dll PinsussChristian Kluin12:31 14 Jun '04  
GeneralError C1083 in VC++ .NET 2002 PinsussScott H. Chang8:07 8 Mar '04  
GeneralRe: Error C1083 in VC++ .NET 2002 PinmemberSachin R Sangoi3:06 11 Jan '07  
Generalhow to export vb function through c++ dll Pinsusssailu21:45 22 Aug '02  
Generaldll compilation error PinmemberMINAKANNAN21:30 22 Jul '02  
GeneralRe: dll compilation error PinsussAnonymous11:05 11 Mar '03  
GeneralRe: dll compilation error PinsussAnonymous1:43 25 Aug '04  
GeneralRe: dll compilation error Pinsusssivo21:09 6 Apr '03  
GeneralRe: dll compilation error PinmemberDaFrawg3:08 30 Jan '04  
GeneralRe: dll compilation error Pinmembersivo21:09 6 Apr '03  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads.

PermaLink | Privacy | Terms of Use
Last Updated: 28 Jun 2002
Editor: Genevieve Sovereign
Copyright 2002 by VGirish
Everything else Copyright © CodeProject, 1999-2010
Web19 | Advertise on the Code Project