Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как сделать dll файл visual studio


Как создать dll в Visual Studio

DLL (Dynamic Link Library) – динамически подключаемая библиотека функций. Для библиотек DLL предполагается многократное использование различными программами. Поговорим о том, как создать библиотеку DLL в Visual Studio, используя языки программирования C и C#.

Создание dll на языке Си

Создаем в Visual Studio новый проект – консольное приложение.

В запустившемся “Мастере приложений Win32″ жмем кнопку “Далее”. В следующем окне выбираем тип приложения: “Библиотека DLL”; также ставим галочку напротив параметра “Пустой проект”. Жмем кнопку “Готово”.

Теперь необходимо создать два файла исходного кода: “main.cpp” и “main.def”. Для этого в “обозревателе решений” нажмем правой кнопкой мыши на папку “Файлы исходного кода”, далее – “Добавить” – “Создать элемент”.

В появившемся окне “Добавление нового элемента” во вкладке “Код” представлены типы файлов, которые нам необходимы. Создадим “main.cpp” и “main.def”.

В итоге обозреватель решений будет выглядеть вот так:

Перейдем к файлу “main.cpp”. Для примера, напишем две функции add и sub, выполняющих сложение и вычитание соответственно для двух целых чисел.

int add(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; }

int add(int a, int b)

{

    return a + b;

}

 

int sub(int a, int b)

{

    return a - b;

}

Перед каждой функцией необходимо добавить модификатор __declspec(dllexport) (два нижних подчеркивания). Этот модификатор разрешает экспорт функции из библиотеки DLL для ее использования в других приложениях. В итоге получим такой код:

__declspec(dllexport) int add(int a, int b) { return a + b; } __declspec(dllexport) int sub(int a, int b) { return a - b; }

__declspec(dllexport)

int add(int a, int b)

{

    return a + b;

}

 

__declspec(dllexport)

int sub(int a, int b)

{

    return a - b;

}

Теперь перейдем к файлу “main.def”. В нем необходимо указать: название библиотеки DLL, ключевое слово EXPORTS, а после него названия функций, экспорт которых необходимо разрешить. В нашем случае, получится вот так:

LIBRARY "dll_vscode" EXPORTS add sub

LIBRARY "dll_vscode"

EXPORTS

add

sub

Осталось построить решение. Для этого во вкладке “ПОСТРОЕНИЕ” нажмем кнопку “Построить решение” (Ctrl+Shift+B).

В итоге, в папке с проектом будет создан файл DLLvscode.dll.

На этом создание DLL-файла завершено.

Если вы хотите скачать исходник проекта в Visual Studio, то нажмите на кнопку ниже:

Скачать исходник на Си

 

 

Создание dll на языке C#

В языке программирования C#, в отличие от языка C, при создании dll-файлов, не нужно указывать модификатор __declspec(dllexport). И в наличии файла “main.def” также нет необходимости.

Создадим в Visual Studio новый проект на языке C#: “Библиотеку классов”.

На основе функций add и sub, описанных выше, создадим в классе vscode соответствующие методы. Пространство имен указывать не нужно.

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; public class vscode { public int add(int a, int b) { return a + b; } public int sub(int a, int b) { return a - b; } }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

public class vscode

{

    public int add(int a, int b)

    {

        return a + b;

    }

 

    public int sub(int a, int b)

    {

        return a - b;

    }

}

Построим решение проекта (Ctrl+Shift+B). В папке Debug будет лежать созданный dll-файл.

Скачать исходник проекта можно ниже:

Скачать исходник C#

 

Как создать dll в Visual Studio

4.44 (88.75%) 16 votes


Поделиться в соц. сетях:

Создание и использование динамических библиотек .dll в visual studio.

Здорова господа!!!

Мы рассмотрим такой вид подключаемых библиотек таких как .dll это типо динамические библиотеки, если код из статических либ добавлялся в сам exe файл и после компиляции программы программа работала без этой библиотеки, то .dll нужно что бы был рядом с исполняемым файлом. Я сам недавно с ними познакомился и только знаю как их создавать и подключать. Считается вроде как эти либы типо как то экономят оперативную помять компьютера ну что то вроде этого, я читал так и не понял, ну это в принципе не сильно важно для новичков, а важно это как их создавать и как использовать.Ну ладно начнем потихоньку.

1. Создание библиотеки .dll

Открываем файл -> создать -> проект

Открывается окно создать проект, выбираем консольное приложение win32, вводим название проекта я ввел MyNewDll и выбираем где будет сохранен проект и нажимаем кнопку Ок и мы попадаем в мастер приложений

Нажимаем Далее и открывается окно в котором выбираем «библиотека DLL» и ставим галочку «пустой проект»

Нажимаем готово, все проект для создания динамических библиотек создан. Дальше создаем заголовочный файл function.h в котором в самом начала файла прописываем следующий код это препроцесорные директивы

//function.h

#ifdef MATHFUNCSDLL_EXPORTS

#define MATHFUNCSDLL_API __declspec(dllexport)

#else

#define MATHFUNCSDLL_API __declspec(dllimport)

#endif

Без этого кода возможно не правильно будет создаваться, я не экспериментировал не знаю, это я прочитал в МСДН, а поэтому добавляйте обязательно, ну и дальше добавляем функции которые будут импортироваться из файла.

#ifndef FUNCTION_H

#define FUNCTION_H

 

MATHFUNCSDLL_API void func_hellow();

MATHFUNCSDLL_API void func_privet();

 

#endif

Ну и сам файл function.cpp добавляем в проект

#include <iostream>

using std::cout;

using std::endl;

 

#include "function.h";

 

void func_hellow()

{

cout <<"Hellow world gacpada"<<endl;

}

 

void func_privet()

{

cout <<"privet eb tu bl9 mazafaka bich"<<endl;

}

Ну и все дальше нажимаем Shift+Alt+F7 и у нас создается .dll в папке дебаг или релиз смотря что вы выбрали, там будет несколько файлов, но нам нужны два файла один с расширением lib — это библиотека импорта, не путайте со статической библиотекой и с расширением .dll и сам заголовочный файл, но не тот что мы создали для проекта .dll а реальный от этот

#ifndef FUNCTION_H

#define FUNCTION_H

 

void func_hellow();

void func_privet();

 

#endif

Я так думаю нужно сказать, как будет создаваться заголовочный файл для класса, я лучше приведу просто какой нить левый пример с кодом для класса.

function.h:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#ifdef MATHFUNCSDLL_EXPORTS

#define MATHFUNCSDLL_API __declspec(dllexport)

#else

#define MATHFUNCSDLL_API __declspec(dllimport)

#endif

 

#ifndef FUNCTION_H

#define FUNCTION_H

 

class My_class

{

public:

MATHFUNCSDLL_API void func_hellow();

MATHFUNCSDLL_API void func_privet();

};

 

#endif

и файл function.cpp:

//#include "stdafx.h"

#include <iostream>

using std::cout;

using std::endl;

 

#include "function.h";

 

void My_class::func_hellow()

{

cout <<"Hellow world gacpada"<<endl;

}

 

void My_class::func_privet()

{

cout <<"privet eb tu bl9 mazafaka bich"<<endl;

}

И все нормально создается.

2. Подключение dll.

Создаем новый проект в котором мы будем использовать нашу библиотеку, создаем файл main.cpp

#include "function.h"

 

int main()

{

My_class c;

c.func_hellow();

c.func_privet();

 

return 0;

}

Я решил создать для dll для класса, заголовочный класс класса у нас имеет вид function.h

#ifndef FUNCTION_H

#define FUNCTION_H

 

class My_class

{

public:

void func_hellow();

void func_privet();

};

 

#endif

ну и в конце копируем созданные ранее файлы библиотеки dll MyNewDll.dll и файл MyNewDll.lib в папку нашего проекта куда мы все подключаем и дальше включаем эти файлы в проект нажимаем горячую комбинацию клавиш Shift+Alt+A и выбираем их или правой клавишей клацаем в обозревателе решений по нашему проекту и переходим в нужную вкладку

появляется окошко в котором выбираем нужные файлы

Нажимаем добавить и в обозревателе решений мы видим что эти файлы у нас добавились

Ну и все мы подключили либу к нашему проекту, дальше нажимаем Ctrl+F5 и создаем проект, все нормально компилируется все работает.

В общем господа мы теперь умеем создавать и подключать динамические библиотеки в visual studio 2013. Для меня как новичка скажу честно это было сразу не легко, я скачивал либы и не знал как их подключить, я делал по простому скидывал все dll в Winsows/System32 , а все lib в папку для lib visual studio, но это не правильно, правильно это когда либы подключаются к создаваемому проекту, так что просто их подключайте к создаваемому проекту.

[youtube]http://www.youtube.com/watch?v=IqFdatdem64[/youtube]

Как добавить dll файл в проект Visual Studio — The Codeby

1 декабря стартует курс "Тестирование Веб-Приложений на проникновение" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, активный фаззинг, уязвимости, пост-эксплуатация, инструментальные средства, Social Engeneering и многое другое. На курс можно записаться до 5 декабря включительно. Подробнее ...

Как добавить dll файл в проект

Небольшое практическое руководство о том, как подключить dll файл в проект программы Visual Studio

1. Перейдите в окно Solution Explorer и выберите пункт References

 

2. Нажмите правую кнопку мыши и в появившемся контекстном меню выберите пункт Add Reference

3. Если вы хотите добавить в проект свою или стороннюю библиотеку, то перейдите к пункту №7, если же вы хотите подключить сборку, входящую в состав FCL, тогда в меню Reference Manager выберите пункт Assemblies

4. Выберите подпункт Framework

5. В появившемся по центу списке выберите нужную вам сборку и нажмите кнопку OK.

6. В папке References должна появиться ссылка на добавленный вами файл.

7. Если вам требуется подключить в проект свою или чью-то скаченную библиотеку, то тогда, сначала, нажмите кнопку Browse

8. Откроется диалоговое окно. Перейдите в папку, которая содержит нужный вам dll файл, выберите его и нажмите кнопку Add

Как отлаживать и профилировать любой EXE-файл с помощью Visual Studio

Вам когда-нибудь нужно было отлаживать или профилировать исполняемый файл (файл .exe), для которого у вас нет исходного кода или вы не можете его собрать? Тогда наименее известный тип проекта Visual Studio, проект EXE, для вас!

В Visual Studio вы можете открыть любой EXE-файл как «проект». Просто перейдите в Файл -> Открыть -> Проект/Решение и перейдите к файлу .exe . Как если бы это был файл .sln . Visual Studio откроет этот EXE-файл как проект. Эта функция существует уже давно. Она работает на всех поддерживаемых в настоящее время версиях Visual Studio, и документация по ней находится на странице Отладка приложения, которое не является частью решения Visual Studio.

 

Отладка


Как и в обычном проекте, вы можете начать отладку с помощью F5, которая запустит EXE и подключит отладчик. Если вы хотите отладить запуск, вы можете запустить с помощью F11, который запустит EXE и остановится на первой строке пользовательского кода. Оба эти параметра доступны в контекстном меню для проекта EXE в окне Solution Explorer, как показано ниже:

Для отладки понадобятся символы, файлы PDB, для EXE и любых DLL, которые нужно отладить. Visual Studio будет следовать тому же процессу и попытается получить символы также, как и при отладке обычного проекта. Поскольку маловероятно, что файлы PDB были распространены вместе с EXE-файлом, возможно, вы захотите найти их в сборке или, что еще лучше, на сервере символов. Дополнительную информацию и рекомендации по использованию символов можно найти в этом блоге.

Для эффективной отладки вам также понадобится исходный код, который использовался для сборки EXE, или даже для нескольких файлов, которые вас интересуют. Вам нужно найти эти файлы и открыть их в Visual Studio. Если исходный код не совпадает с исходным кодом, который был собран, EXE Visual Studio предупредит вас, когда вы попытаетесь вставить точку останова, и точка останова не будет привязана. Это поведение может быть изменено в окне Settings peek window. В окне просмотра параметров щелкните текст ссылки Must match source, а затем установите флажок, чтобы разрешить несоответствующий источник, как показано ниже. Конечно, с несоответствующим источником вы никогда не знаете, что произойдет, так что используйте это только на свой страх и риск.

Если EXE был собран с SourceLink, то информация об источнике будет включена в PDB, и Visual Studio попытается загрузить источник автоматически. Это действительно хорошая причина использовать SourceLink с вашими проектами. Даже если у вас есть локальный набор, у вас может не быть той версии, которая использовалась для сборки двоичного файла. SourceLink — ваш надежный способ убедиться, что правильный источник связан с правильным двоичным файлом.

Если вы не можете получить исходный код, у вас еще есть несколько вариантов:

  1. Используйте инструмент для декомпиляции сборок обратно в C#, который вы можете перекомпилировать в новую сборку, чтобы исправить старую.
    1. ILSpy — отличный выбор для этого, но есть и множество других хороших платных и бесплатных инструментов.

  2. Используйте окно инструмента «Disassembly» в Visual Studio.
    1. Документ Source Not Found содержит ссылку на view disassembly. Имейте в виду, что если вы привыкли к отладке кода на C#, представление о разборке (view disassembly) является крайним средством.


Наконец, если вам нужно передать какие-либо аргументы в отлаживаемый EXE-файл, вы можете настроить их вместе с другими параметрами на странице Свойства проекта (Щелкните правой кнопкой мыши -> Свойства в узле проекта в обозревателе решений).

Профилирование


Вы также можете использовать инструменты профилирования с EXE-файлом, запустив их из Отладка -> Профилирование производительности. На странице запуска инструментов профилирования вы можете выбрать, какие инструменты использовать против EXE. Дополнительную информацию о профилировании можно найти в этих документах ( https://docs.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2019).

Заключение


Вот и все. Краткий обзор того, как вы можете использовать Visual Studio для отладки и профилирования приложений, которые вы не создаете и которые могут даже не иметь исходного кода. В следующий раз, когда вам понадобится отладить или профилировать EXE-файл, не забудьте, что вы можете открыть его как решение в Visual Studio!

Подключение dll к проекту Visual Studio 2010 (C++) — Хабр Q&A

Нужно сделать .lib-файл самостоятельно. Посмотрите, нет ли в комплекте с .dll файла .def. Если есть, то можно получить .lib с помощью
lib.exe /DEF:mylib.def mylib.dll

или
lib.exe /DEF:mylib.def /OUT:mylibname.lib mylib.dll

если нужно другое имя. В таком виде (dll + def), распространяется, например, sqlite3.

Если .def-файла нет, посмотрите, какие у вас символы в библиотеке через

dumpbin /exports mylib.dll

Если это практически те же имена, что и в заголовочном файле, значит, библиотека экспортирует символы в стиле С; это хорошо. Перечислите все нужные имена в командной строке:

lib.exe /EXPORT:mylib_func1 /EXPORT:mylib_func2 mylib.dll

(.def-файл, по сути, делает то же самое.) Единственное, я сейчас не помню, но к именам может спереди добавлятся подчеркивание. Я не уверен, нужно ли указывать имена с подчеркиванием или без.

Если там имен нет, значит, они отрезаны, функции можно определить только по порядковому номеру. Если вокруг них всякая муть, это C++, а муть означает закодированный тип параметров. Это все не очень хорошо, конечно, потому что соответствие номеров функциям не определить (разве что экспериментально), а стандарта на кодирование нет. Но технически создать .lib-файл можно, у опции /EXPORT полная сигнатура такая:

/EXPORT: entryname[= internalname][,@ ordinal[, NONAME]][, DATA]

То есть можно и переименовать функцию, и по номеру ее выбрать, и данные экспортировать. Но это на крайний случай.

lib.exe обычно не в PATH, из обычной командной строки не найдется, но в группе инструментов Visual Studio должно быть что-то вроде «Command Prompt» — он открывает консоль и добавляет нужные пути в PATH, так что инструменты командной строки становятся доступными.

Ссылки: dumpbin, lib.

c ++ - Как заставить Visual Studio скопировать необходимые файлы .dll в папку выпуска?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
.

Как скомпилировать dll c ++ с помощью Visual Studio?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Связаться с разработчиком
.

Как мне добавить dll в свой проект - visual studio C # 2010

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
.

Как я могу скомпилировать проект Visual Studio C # без файла DLL по умолчанию?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
.

c ++ - Как добавить свойства к скомпилированному файлу dll в Visual Studio 2012?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд
.

Visual Studio 2010 C ++ DLL project - Нет выходного файла DLL!

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями wi
.

Смотрите также