Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 03.07.2017
Сообщений: 88

Создание своей dll и подключение её к проекту

04.10.2017, 22:33. Показов 3780. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Я создал небольшую dll буквально из нескольких функций, скомпелировал, получил .dll файл, но вот при попытке подключить его в основную программу получаю ошибку компеляции о том, что указанное пространство имён не найдено.
Подскажите пожалуйста, в чём ошибка?
Ниже код файла для dll и самой программы:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
 
namespace MyLib
{
public static class Printing
{
public static void Print(string text)
{
Console.WriteLine("Вы ввели следующий текст: " + text);
Console.WriteLine("");
}
}
 
public static class Calculation
{
public static int Add(int a, int b)
{
return a + b;
}
 
public static int Sub(int a, int b)
{
return a - b;
}
}
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using MyLib;
 
namespace ProcedureAndFunctionInDLLExample
{
public class Program
{
public static void Main()
{
Console.WriteLine("Введите любой текст:");
string text = Console.ReadLine();
Printing.Print(text);
}
}
}
Заранее большое спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2017, 22:33
Ответы с готовыми решениями:

Подключение своей DLL к проекту Release и Debug версию
Народ, подскажите как решается такой случай. Написал свою библиотеку DLL. Создал свою программу которая должна использовать эту...

Подключение своей DLL к VBA-проекту
Мои действия: создаю DLL на VB 6.0: File -> New Project -> ActiveX DLL Public Function Suma(ByVal a As Integer, ByVal b As...

Создание и подключение своей dll
Доброго времени суток. Сделал библиотеку using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

8
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
04.10.2017, 22:37
А как подключили? Ссылку на библиотеку добавили?
0
0 / 0 / 1
Регистрация: 03.07.2017
Сообщений: 88
04.10.2017, 23:27  [ТС]
То есть ссылку?
Я ведь написал в основной программе using MyLib
То есть подключил пространство имён так же, как и основные dll .NET подключаем.
Или ещё что-то нужно указать?
Если да, то как?
0
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 22
04.10.2017, 23:46
В обозревателе решений правой кнопкой мыши на "Ссылки" -> "Добавить ссылку" -> и добавляете свою dll-ку.
0
0 / 0 / 1
Регистрация: 03.07.2017
Сообщений: 88
04.10.2017, 23:53  [ТС]
К сожалению я не пользуюсь студией, весь код пишу в блокноте, а компелирую cmd файлом, который уже заранее настроил под себя.
Поэтому интересует исключительно программное добавление ссылки на библиотеку.

p.s. О студиях знаю, но не пользуюсь по некоторым причинам, которые не в моих силах исправить.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18270 / 14193 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
05.10.2017, 00:13
vlad-mus, модифицируй свой bat файл добавив к вызову csc.exe параметр /r=путь_к_dll

Цитата Сообщение от vlad-mus Посмотреть сообщение
То есть ссылку?
Я ведь написал в основной программе using MyLib
using всего лишь указывает название пространство имен типы из которого мы планируем использовать. Перед этим нужно добавить ссылку на сборку с этими типами. Для .NET достаточно указать только using потому что на системные сборки ссылки уже сделаны за нас - для экономии времени и усилий.

Добавлено через 1 минуту
Цитата Сообщение от vlad-mus Посмотреть сообщение
К сожалению я не пользуюсь студией, весь код пишу в блокноте, а компелирую cmd файлом, который уже заранее настроил под себя.
Настоятельно рекомендую писать об этом в каждом сообщении чтобы отвечающие не тратили свое и твое время на бесполезные советы.
0
0 / 0 / 1
Регистрация: 03.07.2017
Сообщений: 88
05.10.2017, 02:12  [ТС]
OwenGlendower, вы правы.
Буду уточнять, что не использую среду разработки.
А всё же, по поводу указания ссылки в cmd файле, к сожалению мне всё ещё не совсем понятно.
Вот так выглядит мой cmd файл:

Windows Batch file
1
2
3
4
5
6
set src=Src\ProcedureAndFunctionInDLLExample.cs
set flags=/target:exe /platform:x86 /out:Release\ProcedureAndFunctionInDLLExample.exe
set version=4.0.30319
set errout=error_log.txt
C:\WINDOWS\Microsoft.NET\Framework\v%version%\csc %flags% %SRC% > %errout% 2>&1
if %ERRORLEVEL% NEQ 0 start %errout%
Что нужно добавить в этот код?
И хотел сразу спросить, можно ли где-нибудь почитать об этом?
Очень было сложно составлять подобный файл, и кое-что с помощью, а хотелось бы понять всё.
Как именно составляются подобные cmd файлы, какие есть ещё возможности и так далее.
Заранее большое спасибо!
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18270 / 14193 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
05.10.2017, 07:00
Лучший ответ Сообщение было отмечено vlad-mus как решение

Решение

Цитата Сообщение от vlad-mus Посмотреть сообщение
Что нужно добавить в этот код?
Нужно добавить параметр /r или /reference к переменной flags
Windows Batch file
2
set flags=/target:exe /platform:x86 /out:Release\ProcedureAndFunctionInDLLExample.exe /reference:MyLib.dll
Вместо MyLib.dll укажи правильное имя своей библиотеки и, если dll-ка лежит в отдельном каталоге, укажи полный путь к ней

Цитата Сообщение от vlad-mus Посмотреть сообщение
И хотел сразу спросить, можно ли где-нибудь почитать об этом?
Все команды выводят справку о своем использовании при добавлении параметра /?. Можно начать справку самого интерпретатора командной строки - cmd /?. Еще есть вот такой неплохой сайт по использованию командной строки в Windows - https://ss64.com/nt/syntax.html
0
0 / 0 / 1
Регистрация: 03.07.2017
Сообщений: 88
05.10.2017, 11:43  [ТС]
Большое спасибо!
Всё получилось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2017, 11:43
Помогаю со студенческими работами здесь

Подключение к проекту своей библиотеки
Я хочу свои процедуры и функции подключать к проекту через #include <myfunc.h> Функции объявляю в файле myfunc.h, расположенный по адресу...

Создание .dll и присоеденение .dll к проекту путем непосредственного написания кода
Здравствуйте, дорогие форумчане! Я прекрасно знаю, как создавать и прикреплять к проекту .dll файлы при помощи опций компилятора в Visual...

Подключение dll (C++) к проекту VB 6.0
Здравствуйте! Проблемма в подключении ДЛЛ к VB 6. есть библиотека на C++ //ConsoleApplication2.cpp: определяет точку входа для...

Подключение dll к проекту
Всем здравствуйте! Мне нужно подключить dll библиотеку к проекту, обшарил весь яндекс и ютуб, ничего подходящего не нашлось. Подскажите...

Подключение dll к проекту Qt
Добрый день. В Qt недавно. Возникла проблема с подключением библиотеки lapack https://icl.cs.utk.edu/lapack-for-windows/lapack/ . Из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru