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 fact-checked, ensuring the accuracy of any cited facts and confirming the authority of its sources.
This article has been viewed 150,614 times.
Learn more...
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.
Making and Using a Dynamic Link Library
- To make a DLL, open Visual Studio and start a new project for C++. Set the project type as Library.
- Click Dynamic-link Library (DLL) and create it. Add the code from the Microsoft website.
- Add a CPP file to the DLL, and then select Build Solution.
Steps
-
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.
- You can get Visual Studio for Windows here: https://learn.microsoft.com/en-us/visualstudio/install/install-visual-studio?view=vs-2022
- Visual Studio for Mac can be downloaded here: https://learn.microsoft.com/en-us/previous-versions/visualstudio/mac/installation?view=vsmac-2022
- This wikiHow will be using code provided by Microsoft to explain how to build a DLL file.
-
Click the File. You’ll find this either above the project space (Windows) or along the top of your screen (Macs).[1]Advertisement
-
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++.
-
Click Platform to get a drop-down menu and click Windows.
-
Click Project Type to get a drop-down menu and click Library.[3]
-
Click Dynamic-link Library (DLL). Your choice will highlight blue. Click Next to continue.[4]
-
Type a name in the Name Box for the project. For example, type “MathLibrary” in the box for a sample name.[5]
-
Click Create. The DLL project is created.[6]
-
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.
-
Type the following code into the blank header file.
- This is sample code provided from the Microsoft help website.
// 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();
-
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.
-
Type the following code into the blank file.
- This is sample code provided from the Microsoft help website.
// 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_; }
-
Click Build in the menu bar. You’ll find this either above the project space (Windows) or along the top of your screen (Macs).
-
Click Build Solution. After you click that, you should see text similar to this:
- 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>------ 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 ==========
Expert Q&A
Tips
References
- ↑ https://learn.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170
- ↑ https://learn.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170
- ↑ https://learn.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170
- ↑ https://learn.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170
- ↑ https://learn.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170
- ↑ https://learn.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170
About This Article
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.