How can I open DLL files to see what is written inside?
I lost the solution of a class library. Can I open the DLL file which is created by the class library?
8 Answers 8
You are better off with a decompiler like Redgate’s .NET Reflector or JetBrains’ ReSharper decompiler.
There are open source ones also, like:
Follow the below steps.
- Go to the Start Menu.
- Type Visual Studio Tool.
- Go to the folder above.
- Click on "Developer Command Prompt for VS 2013" in the case of Visual Studio 2013 or just "Visual Studio Command Prompt " in case of Visual Studio 2010.
- After the command prompt loaded to the screen, type ILDASM.EXE press ENTER.
- An ILDASM window will open. Drag the .dll file to the window from your folder. Or click on menu File → New. Then add the required .dll file.
- After the above steps, the manifest and .dll file will appear. Double click on those files to see what they contain.
I think you have downloaded the .NET Reflector & this FileGenerator plugin http://filegenreflector.codeplex.com/ , If you do,
Open up the Reflector.exe,
Go to View and click Add-Ins,
In the Add-Ins window click Add.
Then find the dll you have downloaded
FileGenerator.dll (witch came wth the FileGenerator plugin),
Then close the Add-Ins window.
Go to File and click Open and choose the dll that you want to decompile,
After you have opend it, it will appear in the tree view,
Go to Tools and click Generate Files(Crtl+Shift+G),
select the output directory and select appropriate settings as your wish, Click generate files.
OR
You cannot get the exact code, but you can get a decompiled version of it.
The most popular (and best) tool is Reflector, but there are also other .NET decompilers (such as Dis#).
You can also decompile the CIL using ILDASM, which comes bundled with the .NET Framework SDK tools.
I use JetBrains’ dotPeek software. You can try that too.
Telerik’s Just Decompile is the best I’ve used. It’s free once you sign up with an email.
Open the .dll file with Visual Studio. Or a resource editor.
*.dll files are archive files opened with WinZip, 7-Zip, etc. That isn’t to say that all .dll files are archives. You can save anything with the .dll extension. However, most Windows .dll files are generated to be archives. Examples of this are Windows > twain_32.dll which is an archive file. However, twain.dll is not. If you look at twain.dll you will see an MZŽ as the first three notepad characters which denotes a compiled C file/program or part of a program. Whereas MZ seems to be an archive.
Also, most .exe files are archives mostly containing an icon image, etc. For the file and the windows installer packages as well, they contain all the information the program needs to run images, movies, etc. and also directories including installation information and plain text files.
I have a game here, game.exe, and it contains Java class files and image a pointer directing the .exe to run a .bat file. Obviously, your .bat file will run a javac call from the archive and run the game. There are also a few .dll archives containing Java class files.
This is the solid edge autorun.inf file contained in solidedge.exe Autostart\ is the Autostart.dll directory. open=autostart.exe specifies the autostart.exe file to run from within the original solidedge.exe archive. Here is a sample program using the .dll (dynamic link library) files: Creating And Using DLLs.
It also shows how they are created. As you can see, the contents of the DLL file file is called by an EXE file file as I previously explained. Also there is a tutorial here Walkthrough: Create and use your own Dynamic Link Library (C++), and, as I said before, 7-Zip or WinZip will open a dynamic link library as an archive as long as you have the .dll file. If the contents of the dynamic link library have been compiled obviously, you need a program which can read the file.
However, since .dll files are by definition just archive library files, the DLL file itself should be readable and not a compiled C or C# file, etc., etc. Basically, .dll files are archives. Well, they should be when a .dll file is created in Visual Studio. The DLL file is created and any information you store in the DLL file file is encrypted. Mostly, this encryption is handled by Visual Studio itself and generally isn’t edited by hand. When you read a .dll file contents as a .exe, the contents are automatically decrypted. Now when we talk about compiling a program we are changing the contents into bytecode the machine easily interprets.
This file size would be smaller than the original file of the same contents. However, the filesize is larger, suggesting that the file has actually been encrypted. It is probably to stop people reading their code. As a result, the reading of .dll contents is termed decryption and not decompilation. Decompilation would convert the already-compiled .txt files to unreadable byte code. The use of standard .dll files is by definition not open source, because it involves the deliberate obfuscation of byte code.
Расширение файла DLL
Файлы с расширением .DLL содержат файлы динамически связанных библиотек, совместно используемых в системе Microsoft Windows, а также OS / 2.
Дополнительная информация:
Все данные могут быть загружены в память и использованы несколькими программами одновременно. Часто это AcriveX или элементы управления панели управления, или некоторые устаревшие драйверы, или, возможно, библиотеки значков или шрифтов — хотя в этом случае они обычно имеют разные расширения. Они также используются в качестве элементов различных программ — плагинов, предлагающих определенные функции.
Библиотеки могут содержать:
- Код подпрограмм, плагинов, функций,
- Данные, в том числе графические,
- Связанные ресурсы
Спецификация формата DLL такая же, как и для файлов EXE, однако библиотека не представляет собой отдельную программу. Внутри соответствующей программы ссылка на библиотеку и ее загрузка могут быть выполнены настолько поздно, насколько это необходимо. Допущения файлов DLL поддерживают модульную структуру приложения, идею повторного использования фрагментов кода, а также снижение использования памяти и необходимого дискового пространства.
Программы, которые поддерживают DLL расширение файла
Программы, которые могут обрабатывать DLL файлы, следующие. Файлы с расширением DLL, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.
Программы, обслуживающие файл DLL
Windows
Updated: 12/31/2021
Как открыть файл DLL?
Отсутствие возможности открывать файлы с расширением DLL может иметь различное происхождение. К счастью, наиболее распространенные проблемы с файлами DLL могут быть решены без глубоких знаний в области ИТ, а главное, за считанные минуты. Приведенный ниже список проведет вас через процесс решения возникшей проблемы.
Шаг 1. Скачайте и установите Microsoft Visual Studio
Наиболее распространенной причиной таких проблем является отсутствие соответствующих приложений, поддерживающих файлы DLL, установленные в системе. Наиболее очевидным решением является загрузка и установка Microsoft Visual Studio или одной из перечисленных программ: Microsoft Windows, Visual FoxPro, Resource Hacker. Выше вы найдете полный список программ, которые поддерживают DLL файлы, классифицированные в соответствии с системными платформами, для которых они доступны. Если вы хотите загрузить установщик Microsoft Visual Studio наиболее безопасным способом, мы рекомендуем вам посетить сайт Microsoft Corporation и загрузить его из официальных репозиториев.
Шаг 2. Обновите Microsoft Visual Studio до последней версии
Если у вас уже установлен Microsoft Visual Studio в ваших системах и файлы DLL по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Может также случиться, что создатели программного обеспечения, обновляя свои приложения, добавляют совместимость с другими, более новыми форматами файлов. Если у вас установлена более старая версия Microsoft Visual Studio, она может не поддерживать формат DLL. Самая последняя версия Microsoft Visual Studio обратно совместима и может работать с форматами файлов, поддерживаемыми более старыми версиями программного обеспечения.
Шаг 3. Назначьте Microsoft Visual Studio для DLL файлов
После установки Microsoft Visual Studio (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия DLL файлов. Метод довольно прост и мало меняется в разных операционных системах.
Выбор приложения первого выбора в Windows
- Выберите пункт Открыть с помощью в меню «Файл», к которому можно щелкнуть правой кнопкой мыши файл DLL.
- Нажмите Выбрать другое приложение и затем выберите опцию Еще приложения
- Наконец, выберите Найти другое приложение на этом. , укажите папку, в которой установлен Microsoft Visual Studio, установите флажок Всегда использовать это приложение для открытия DLL файлы свой выбор, нажав кнопку ОК
Выбор приложения первого выбора в Mac OS
- Щелкните правой кнопкой мыши на файле DLL и выберите Информация.
- Найдите опцию Открыть с помощью — щелкните заголовок, если он скрыт
- Выберите Microsoft Visual Studio и нажмите Изменить для всех .
- Наконец, это изменение будет применено ко всем файлам с расширением DLL должно появиться сообщение. Нажмите кнопку Вперед , чтобы подтвердить свой выбор.
Шаг 4. Убедитесь, что DLL не неисправен
Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным DLL файлом. Проблемы с открытием файла могут возникнуть по разным причинам.
1. Убедитесь, что DLL не заражен компьютерным вирусом
Если DLL действительно заражен, возможно, вредоносное ПО блокирует его открытие. Рекомендуется как можно скорее сканировать систему на наличие вирусов и вредоносных программ или использовать онлайн-антивирусный сканер. DLL файл инфицирован вредоносным ПО? Следуйте инструкциям антивирусного программного обеспечения.
2. Убедитесь, что файл с расширением DLL завершен и не содержит ошибок
Если файл DLL был отправлен вам кем-то другим, попросите этого человека отправить вам файл. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. Это может произойти, если процесс загрузки файла с расширением DLL был прерван и данные файла повреждены. Загрузите файл снова из того же источника.
3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.
Некоторые файлы требуют повышенных прав доступа для их открытия. Войдите в систему, используя учетную запись администратора, и посмотрите, решит ли это проблему.
4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия Microsoft Visual Studio
Операционные системы могут иметь достаточно свободных ресурсов для запуска приложения, поддерживающего файлы DLL. Закройте все работающие программы и попробуйте открыть файл DLL.
5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений
Регулярно обновляемая система, драйверы и программы обеспечивают безопасность вашего компьютера. Это также может предотвратить проблемы с файлами Dynamic Link Library. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов DLL.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла DLL мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле DLL.
Name already in use
cpp-docs / docs / build / walkthrough-creating-and-using-a-dynamic-link-library-cpp.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
68 contributors
Users who have contributed to this file
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Walkthrough: Create and use your own Dynamic Link Library (C++)
This step-by-step walkthrough shows how to use the Visual Studio IDE to create your own dynamic link library (DLL) written in Microsoft C++ (MSVC). Then it shows how to use the DLL from another C++ app. DLLs (also known as shared libraries in UNIX-based operating systems) are one of the most useful kinds of Windows components. You can use them as a way to share code and resources, and to shrink the size of your apps. DLLs can even make it easier to service and extend your apps.
In this walkthrough, you’ll create a DLL that implements some math functions. Then you’ll create a console app that uses the functions from the DLL. You’ll also get an introduction to some of the programming techniques and conventions used in Windows DLLs.
This walkthrough covers these tasks:
Create a DLL project in Visual Studio.
Add exported functions and variables to the DLL.
Create a console app project in Visual Studio.
Use the functions and variables imported from the DLL in the console app.
Run the completed app.
Like a statically linked library, a DLL exports variables, functions, and resources by name. A client app imports the names to use those variables, functions, and resources. Unlike a statically linked library, Windows connects the imports in your app to the exports in a DLL at load time or at run time, instead of connecting them at link time. Windows requires extra information that isn’t part of the standard C++ compilation model to make these connections. The MSVC compiler implements some Microsoft-specific extensions to C++ to provide this extra information. We explain these extensions as we go.
This walkthrough creates two Visual Studio solutions; one that builds the DLL, and one that builds the client app. The DLL uses the C calling convention. It can be called from apps written in other programming languages, as long as the platform, calling conventions, and linking conventions match. The client app uses implicit linking, where Windows links the app to the DLL at load-time. This linking lets the app call the DLL-supplied functions just like the functions in a statically linked library.
This walkthrough doesn’t cover some common situations. The code doesn’t show the use of C++ DLLs by other programming languages. It doesn’t show how to create a resource-only DLL, or how to use explicit linking to load DLLs at run-time rather than at load-time. Rest assured, you can use MSVC and Visual Studio to do all these things.
Even though the code of the DLL is written in C++, we’ve used C-style interfaces for the exported functions. There are two main reasons for this: First, many other languages support imports of C-style functions. The client app doesn’t have to be written in C++. Second, it avoids some common pitfalls related to exported classes and member functions. It’s easy to make hard-to-diagnose errors when exporting classes, since everything referred to within a class declaration has to have an instantiation that’s also exported. This restriction applies to DLLs, but not static libraries. If your classes are plain-old-data style, you shouldn’t run into this issue.
For links to more information about DLLs, see Create C/C++ DLLs in Visual Studio. For more information about implicit linking and explicit linking, see Determine which linking method to use. For information about creating C++ DLLs for use with programming languages that use C-language linkage conventions, see Exporting C++ functions for use in C-language executables. For information about how to create DLLs for use with .NET languages, see Calling DLL Functions from Visual Basic Applications.
- A computer that runs Microsoft Windows 7 or later versions. We recommend the latest version of Windows for the best development experience.
A copy of Visual Studio. For information on how to download and install Visual Studio, see Install Visual Studio. When you run the installer, make sure that the Desktop development with C++ workload is checked. Don’t worry if you didn’t install this workload when you installed Visual Studio. You can run the installer again and install it now.
- A copy of Visual Studio. For information on how to download and install Visual Studio 2015, see Install Visual Studio 2015. Use a Custom installation to install the C++ compiler and tools, since they’re not installed by default.
An understanding of the basics of using the Visual Studio IDE. If you’ve used Windows desktop apps before, you can probably keep up. For an introduction, see Visual Studio IDE feature tour.
An understanding of enough of the fundamentals of the C++ language to follow along. Don’t worry, we don’t do anything too complicated.
[!NOTE] This walkthrough assumes you’re using Visual Studio 2017 version 15.9 or later. Some earlier versions of Visual Studio 2017 had defects in the code templates, or used different user interface dialogs. To avoid problems, use the Visual Studio Installer to update Visual Studio 2017 to version 15.9 or later.
Create the DLL project
In this set of tasks, you create a project for your DLL, add code, and build it. To begin, start the Visual Studio IDE, and sign in if you need to. The instructions vary slightly depending on which version of Visual Studio you’re using. Make sure you have the correct version selected in the control in the upper left of this page.
To create a DLL project in Visual Studio 2019
On the menu bar, choose File > New > Project to open the Create a New Project dialog box.
At the top of the dialog, set Language to C++, set Platform to Windows, and set Project type to Library.
From the filtered list of project types, select Dynamic-link Library (DLL), and then choose Next.
In the Configure your new project page, enter MathLibrary in the Project name box to specify a name for the project. Leave the default Location and Solution name values. Set Solution to Create new solution. Uncheck Place solution and project in the same directory if it’s checked.
Choose the Create button to create the project.
When the solution is created, you can see the generated project and source files in the Solution Explorer window in Visual Studio.
To create a DLL project in Visual Studio 2017
On the menu bar, choose File > New > Project to open the New Project dialog box.
In the left pane of the New Project dialog box, select Installed > Visual C++ > Windows Desktop. In the center pane, select Dynamic-Link Library (DLL). Enter MathLibrary in the Name box to specify a name for the project. Leave the default Location and Solution name values. Set Solution to Create new solution. Check Create directory for solution if it’s unchecked.
Choose the OK button to create the project.
When the solution is created, you can see the generated project and source files in the Solution Explorer window in Visual Studio.
To create a DLL project in Visual Studio 2015 and older versions
On the menu bar, choose File > New > Project.
In the left pane of the New Project dialog box, expand Installed > Templates, and select Visual C++, and then in the center pane, select Win32 Console Application. Enter MathLibrary in the Name edit box to specify a name for the project. Leave the default Location and Solution name values. Set Solution to Create new solution. Check Create directory for solution if it’s unchecked.
Choose the OK button to dismiss the New Project dialog and start the Win32 Application Wizard.
Choose the Next button. On the Application Settings page, under Application type, select DLL.
Choose the Finish button to create the project.
When the wizard completes the solution, you can see the generated project and source files in the Solution Explorer window in Visual Studio.
Right now, this DLL doesn’t do very much. Next, you’ll create a header file to declare the functions your DLL exports, and then add the function definitions to the DLL to make it more useful.
To add a header file to the DLL
To create a header file for your functions, on the menu bar, choose Project > Add New Item.
In the Add New Item dialog box, in the left pane, select Visual C++. In the center pane, select Header File (.h). Specify MathLibrary.h as the name for the header file.
Choose the Add button to generate a blank header file, which is displayed in a new editor window.
Replace the contents of the header file with this code:
This header file declares some functions to produce a generalized Fibonacci sequence, given two initial values. A call to fibonacci_init(1, 1) generates the familiar Fibonacci number sequence.
Notice the preprocessor statements at the top of the file. The new project template for a DLL project adds <PROJECTNAME>_EXPORTS to the defined preprocessor macros. In this example, Visual Studio defines MATHLIBRARY_EXPORTS when your MathLibrary DLL project is built.
When the MATHLIBRARY_EXPORTS macro is defined, the MATHLIBRARY_API macro sets the __declspec(dllexport) modifier on the function declarations. This modifier tells the compiler and linker to export a function or variable from the DLL for use by other applications. When MATHLIBRARY_EXPORTS is undefined, for example, when the header file is included by a client application, MATHLIBRARY_API applies the __declspec(dllimport) modifier to the declarations. This modifier optimizes the import of the function or variable in an application. For more information, see dllexport, dllimport.
To add an implementation to the DLL
In Solution Explorer, right-click on the Source Files node and choose Add > New Item. Create a new .cpp file called MathLibrary.cpp, in the same way that you added a new header file in the previous step.
In the editor window, select the tab for MathLibrary.cpp if it’s already open. If not, in Solution Explorer, double-click MathLibrary.cpp in the Source Files folder of the MathLibrary project to open it.
In the editor, replace the contents of the MathLibrary.cpp file with the following code:
In the editor window, select the tab for MathLibrary.cpp if it’s already open. If not, in Solution Explorer, double-click MathLibrary.cpp in the Source Files folder of the MathLibrary project to open it.
In the editor, replace the contents of the MathLibrary.cpp file with the following code:
To verify that everything works so far, compile the dynamic link library. To compile, choose Build > Build Solution on the menu bar. The DLL and related compiler output are placed in a folder called Debug directly below the solution folder. If you create a Release build, the output is placed in a folder called Release. The output should look something like this:
Congratulations, you’ve created a DLL using Visual Studio! Next, you’ll create a client app that uses the functions exported by the DLL.
Create a client app that uses the DLL
When you create a DLL, think about how client apps may use it. To call the functions or access the data exported by a DLL, client source code must have the declarations available at compile time. At link time, the linker requires information to resolve the function calls or data accesses. A DLL supplies this information in an import library, a file that contains information about how to find the functions and data, instead of the actual code. And at run time, the DLL must be available to the client, in a location that the operating system can find.
Whether it’s your own or from a third-party, your client app project needs several pieces of information to use a DLL. It needs to find the headers that declare the DLL exports, the import libraries for the linker, and the DLL itself. One solution is to copy all of these files into your client project. For third-party DLLs that are unlikely to change while your client is in development, this method may be the best way to use them. However, when you also build the DLL, it’s better to avoid duplication. If you make a local copy of DLL files that are under development, you may accidentally change a header file in one copy but not the other, or use an out-of-date library.
To avoid out-of-sync code, we recommend you set the include path in your client project to include the DLL header files directly from your DLL project. Also, set the library path in your client project to include the DLL import libraries from the DLL project. And finally, copy the built DLL from the DLL project into your client build output directory. This step allows your client app to use the same DLL code you build.
To create a client app in Visual Studio
On the menu bar, choose File > New > Project to open the Create a new project dialog box.
At the top of the dialog, set Language to C++, set Platform to Windows, and set Project type to Console.
From the filtered list of project types, choose Console App then choose Next.
In the Configure your new project page, enter MathClient in the Project name box to specify a name for the project. Leave the default Location and Solution name values. Set Solution to Create new solution. Uncheck Place solution and project in the same directory if it’s checked.
Choose the Create button to create the client project.
A minimal console application project is created for you. The name for the main source file is the same as the project name that you entered earlier. In this example, it’s named MathClient.cpp. You can build it, but it doesn’t use your DLL yet.
To create a client app in Visual Studio 2017
To create a C++ app that uses the DLL that you created, on the menu bar, choose File > New > Project.
In the left pane of the New Project dialog, select Windows Desktop under Installed > Visual C++. In the center pane, select Windows Console Application. Specify the name for the project, MathClient, in the Name edit box. Leave the default Location and Solution name values. Set Solution to Create new solution. Check Create directory for solution if it’s unchecked.
Choose OK to create the client app project.
A minimal console application project is created for you. The name for the main source file is the same as the project name that you entered earlier. In this example, it’s named MathClient.cpp. You can build it, but it doesn’t use your DLL yet.
To create a client app in Visual Studio 2015
To create a C++ app that uses the DLL that you created, on the menu bar, choose File > New > Project.
In the left pane of the New Project dialog, select Win32 under Installed > Templates > Visual C++. In the center pane, select Win32 Console Application. Specify the name for the project, MathClient, in the Name edit box. Leave the default Location and Solution name values. Set Solution to Create new solution. Check Create directory for solution if it’s unchecked.
Choose the OK button to dismiss the New Project dialog and start the Win32 Application Wizard. On the Overview page of the Win32 Application Wizard dialog box, choose the Next button.
On the Application Settings page, under Application type, select Console application if it isn’t already selected.
Choose the Finish button to create the project.
When the wizard finishes, a minimal console application project is created for you. The name for the main source file is the same as the project name that you entered earlier. In this example, it’s named MathClient.cpp. You can build it, but it doesn’t use your DLL yet.
Next, to call the MathLibrary functions in your source code, your project must include the MathLibrary.h file. You could copy this header file into your client app project, then add it to the project as an existing item. This method can be a good choice for third-party libraries. However, if you’re working on the code for your DLL and your client at the same time, the header files could get out of sync. To avoid this issue, set the Additional Include Directories path in your project to include the path to the original header.
To add the DLL header to your include path
Right-click on the MathClient node in Solution Explorer to open the Property Pages dialog.
In the Configuration drop-down box, select All Configurations if it’s not already selected.
In the left pane, select Configuration Properties > C/C++ > General.
In the property pane, select the drop-down control next to the Additional Include Directories edit box, and then choose Edit.
Double-click in the top pane of the Additional Include Directories dialog box to enable an edit control. Or, choose the folder icon to create a new entry.
In the edit control, specify the path to the location of the MathLibrary.h header file. You can choose the ellipsis (. ) control to browse to the correct folder.
You can also enter a relative path from your client source files to the folder that contains the DLL header files. If you followed the directions to put your client project in a separate solution from the DLL, the relative path should look like this:
If your DLL and client projects are in the same solution, the relative path might look like this:
When the DLL and client projects are in other folders, adjust the relative path to match. Or, use the ellipsis control to browse for the folder.
After you’ve entered the path to the header file in the Additional Include Directories dialog box, choose the OK button. In the Property Pages dialog box, choose the OK button to save your changes.
You can now include the MathLibrary.h file and use the functions it declares in your client application. Replace the contents of MathClient.cpp by using this code:
This code can be compiled, but not linked. If you build the client app now, the error list shows several LNK2019 errors. That’s because your project is missing some information: You haven’t specified that your project has a dependency on the MathLibrary.lib library yet. And, you haven’t told the linker how to find the MathLibrary.lib file.
To fix this issue, you could copy the library file directly into your client app project. The linker would find and use it automatically. However, if both the library and the client app are under development, that might lead to changes in one copy that aren’t shown in the other. To avoid this issue, you can set the Additional Dependencies property to tell the build system that your project depends on MathLibrary.lib. And, you can set an Additional Library Directories path in your project to include the path to the original library when you link.
To add the DLL import library to your project
Right-click on the MathClient node in Solution Explorer and choose Properties to open the Property Pages dialog.
In the Configuration drop-down box, select All Configurations if it’s not already selected. It ensures that any property changes apply to both Debug and Release builds.
In the left pane, select Configuration Properties > Linker > Input. In the property pane, select the drop-down control next to the Additional Dependencies edit box, and then choose Edit.
In the Additional Dependencies dialog, add MathLibrary.lib to the list in the top edit control.
Choose OK to go back to the Property Pages dialog box.
In the left pane, select Configuration Properties > Linker > General. In the property pane, select the drop-down control next to the Additional Library Directories edit box, and then choose Edit.
Double-click in the top pane of the Additional Library Directories dialog box to enable an edit control. In the edit control, specify the path to the location of the MathLibrary.lib file. By default, it’s in a folder called Debug directly under the DLL solution folder. If you create a release build, the file is placed in a folder called Release. You can use the $(IntDir) macro so that the linker can find your DLL, no matter which kind of build you create. If you followed the directions to put your client project in a separate solution from the DLL project, the relative path should look like this:
If your DLL and client projects are in other locations, adjust the relative path to match.
Once you’ve entered the path to the library file in the Additional Library Directories dialog box, choose the OK button to go back to the Property Pages dialog box. Choose OK to save the property changes.
Your client app can now compile and link successfully, but it still doesn’t have everything it needs to run. When the operating system loads your app, it looks for the MathLibrary DLL. If it can’t find the DLL in certain system directories, the environment path, or the local app directory, the load fails. Depending on the operating system, you’ll see an error message like this:
One way to avoid this issue is to copy the DLL to the directory that contains your client executable as part of the build process. You can add a Post-Build Event to your project, to add a command that copies the DLL to your build output directory. The command specified here copies the DLL only if it’s missing or has changed. It uses macros to copy to and from the Debug or Release locations, based on your build configuration.
To copy the DLL in a post-build event
Right-click on the MathClient node in Solution Explorer and choose Properties to open the Property Pages dialog.
In the Configuration drop-down box, select All Configurations if it isn’t already selected.
In the left pane, select Configuration Properties > Build Events > Post-Build Event.
In the property pane, select the edit control in the Command Line field. If you followed the directions to put your client project in a separate solution from the DLL project, then enter this command:
xcopy /y /d «..\..\MathLibrary\$(IntDir)MathLibrary.dll» «$(OutDir)»
If your DLL and client projects are in other directories, change the relative path to the DLL to match.
Choose the OK button to save your changes to the project properties.
Now your client app has everything it needs to build and run. Build the application by choosing Build > Build Solution on the menu bar. The Output window in Visual Studio should have something like the following example depending on your version of Visual Studio:
Congratulations, you’ve created an application that calls functions in your DLL. Now run your application to see what it does. On the menu bar, choose Debug > Start Without Debugging. Visual Studio opens a command window for the program to run in. The last part of the output should look like:
Press any key to dismiss the command window.
Now that you’ve created a DLL and a client application, you can experiment. Try setting breakpoints in the code of the client app, and run the app in the debugger. See what happens when you step into a library call. Add other functions to the library, or write another client app that uses your DLL.
When you deploy your app, you must also deploy the DLLs it uses. The simplest way to make the DLLs that you build, or that you include from third parties, available is to put them in the same directory as your app. It’s known as app-local deployment. For more information about deployment, see Deployment in Visual C++.
Как открыть DLL–файлы
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 17 человек(а).
Количество просмотров этой статьи: 313 761.
Динамическая библиотека (или DLL-файлы) является основой традиционного программирования в Windows. Это внешние файлы данных, к которым обращаются различные программы (обращаются без постороннего вмешательства); так отпадает необходимость встраивать такие файлы в каждую программу. DLL-файлы работают в фоновом режиме и обычный пользователь редко сталкивается с ними. Однако, по той или иной причине может возникнуть необходимость открыть один из DLL-файлов. В этой статье мы расскажем вам, как это сделать.