DLL files are dynamic-linked library files written and controlled with C++. DLLs make sharing, storing, and saving your code simple. This wikiHow will show you how to create a DLL file with Visual Studio, the Windows application, or Visual Studio for Mac. Make sure you have “Desktop Development with C++” checked when you install. If you already have Visual Studio but didn’t check that box, you can run the installer again to make sure you do.

Steps

  1. 1
    Open Visual Studio. You can find this in your Start Menu or Applications folder. Since a DLL is a library of information, it is only one piece of a project, and usually requires an accompanying app to access it.
  2. 2
    Click the File. You’ll find this either above the project space (Windows) or along the top of your screen (Macs).
    Advertisement
  3. 3
    Click New and Project. The “Create a New Project” dialog box will pop up.
  4. 4
    Set the options for Language, Platform, and Project Type. These will filter what kinds of project templates appear.
    • Click Language to get a drop-down menu and click C++.
  5. 5
    Click Platform to get a drop-down menu and click Windows.
  6. 6
    Click Project Type to get a drop-down menu and click Library.
  7. 7
    Click Dynamic-link Library (DLL). Your choice will highlight blue. Click Next to continue.
  8. 8
    Type a name in the Name Box for the project. For example, type “MathLibrary” in the box for a sample name.
  9. 9
    Click Create. The DLL project is created.
  10. 10
    Add a header file to the DLL. You can do this by clicking “Add New Item” from “Project” in the menu bar.
    • Select Visual C++ from the left menu of the dialog box.
    • Select Header file (.h) from the center of the dialog box.
    • Type the name as “MathLibrary.h” in the name field below the menu choices.
    • Click Add to generate the blank header file.
  11. 11
    Type the following code into the blank header file.
      // MathLibrary.h - Contains declarations of math functions
      #pragma once
      
      #ifdef MATHLIBRARY_EXPORTS
      #define MATHLIBRARY_API __declspec(dllexport)
      #else
      #define MATHLIBRARY_API __declspec(dllimport)
      #endif
      
      // The Fibonacci recurrence relation describes a sequence F
      // where F(n) is { n = 0, a
      //               { n = 1, b
      //               { n > 1, F(n-2) + F(n-1)
      // for some initial integral values a and b.
      // If the sequence is initialized F(0) = 1, F(1) = 1,
      // then this relation produces the well-known Fibonacci
      // sequence: 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
      
      // Initialize a Fibonacci relation sequence
      // such that F(0) = a, F(1) = b.
      // This function must be called before any other function.
      extern "C" MATHLIBRARY_API void fibonacci_init(
          const unsigned long long a, const unsigned long long b);
      
      // Produce the next value in the sequence.
      // Returns true on success and updates current value and index;
      // false on overflow, leaves current value and index unchanged.
      extern "C" MATHLIBRARY_API bool fibonacci_next();
      
      // Get the current value in the sequence.
      extern "C" MATHLIBRARY_API unsigned long long fibonacci_current();
      
      // Get the position of the current value in the sequence.
      extern "C" MATHLIBRARY_API unsigned fibonacci_index();
      
    • This is sample code provided from the Microsoft help website.
  12. 12
    Add a CPP file to the DLL. You can do this by clicking Add New Item from “Project” in the menu bar.
    • Select “Visual C++” from the left menu of the dialog box.
    • Select “C++ File (.cpp)” from the center of the dialog box.
    • Type the name as “MathLibrary.cpp” in the name field below the menu choices.
    • Click Add to generate the blank file.
  13. 13
    Type the following code into the blank file.
      // MathLibrary.cpp : Defines the exported functions for the DLL.
      #include "stdafx.h" // use pch.h in Visual Studio 2019
      #include <utility>
      #include <limits.h>
      #include "MathLibrary.h"
      
      // DLL internal state variables:
      static unsigned long long previous_;  // Previous value, if any
      static unsigned long long current_;   // Current sequence value
      static unsigned index_;               // Current seq. position
      
      // Initialize a Fibonacci relation sequence
      // such that F(0) = a, F(1) = b.
      // This function must be called before any other function.
      void fibonacci_init(
          const unsigned long long a,
          const unsigned long long b)
      {
          index_ = 0;
          current_ = a;
          previous_ = b; // see special case when initialized
      }
      
      // Produce the next value in the sequence.
      // Returns true on success, false on overflow.
      bool fibonacci_next()
      {
          // check to see if we'd overflow result or position
          if ((ULLONG_MAX - previous_ < current_) ||
              (UINT_MAX == index_))
          {
              return false;
          }
      
          // Special case when index == 0, just return b value
          if (index_ > 0)
          {
              // otherwise, calculate next sequence value
              previous_ += current_;
          }
          std::swap(current_, previous_);
          ++index_;
          return true;
      }
      
      // Get the current value in the sequence.
      unsigned long long fibonacci_current()
      {
          return current_;
      }
      
      // Get the current index position in the sequence.
      unsigned fibonacci_index()
      {
          return index_;
      }
      
    • This is sample code provided from the Microsoft help website.
  14. 14
    Click Build in the menu bar. You’ll find this either above the project space (Windows) or along the top of your screen (Macs).
  15. 15
    Click Build Solution. After you click that, you should see text similar to this:
      1>------ Build started: Project: MathLibrary, Configuration: Debug Win32 ------
      1>MathLibrary.cpp
      1>dllmain.cpp
      1>Generating Code...
      1>   Creating library C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.lib and object C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.exp
      1>MathLibrary.vcxproj -> C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.dll
      1>MathLibrary.vcxproj -> C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.pdb (Partial PDB)
      ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
      
    • If your DLL creation was successful, you'll see that here. If there was an error, it will be listed here for you to fix.[1]
  16. Advertisement

About This Article

Darlene Antonelli, MA
Written by:
wikiHow Technology Writer
This article was co-authored by wikiHow staff writer, Darlene Antonelli, MA. Darlene Antonelli is a Technology Writer and Editor for wikiHow. Darlene has experience teaching college courses, writing technology-related articles, and working hands-on in the technology field. She earned an MA in Writing from Rowan University in 2012 and wrote her thesis on online communities and the personalities curated in such communities. This article has been viewed 102,136 times.
How helpful is this?
Co-authors: 3
Updated: December 11, 2019
Views: 102,136
Categories: File Manipulation
Article SummaryX

1. Open Visual Studio.
2. Open a new Dynamic-link library (DLL) project.
3. Add a header file.
4. Add a CPP file.
5. Check to see if the library works.

Did this summary help you?
Advertisement