Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2015, 00:28   #1
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию Как привязать dll к проекту?

Я создал библиотеку с до абсурда примитивнейшей функцией без параметров. Нажатием F6 скомпонавал dll'ку.
Вот содержимое решения dll:
PHP код:
using System;

namespace 
TestDll
{
    public class 
SumTwoInt
    
{
        public static 
int GetSum()
        {
            
int firstNum 2;
            
int secondNum 5;

            return(
firstNum secondNum);
        }

    }

Решил проверить её, по той причине, что с dll ещё не имел опыта работы вообще, но хочется научится. Создал тестовое решение в котором пытаюсь вызвать метод GetSum(). Добавил в Обозревателе решения ссылку на dll'ку. Добавил пространство имён в шапке кода, прописал класс и интелленс "подсказал" мне название метода моего, который мне нужно вызвать из dll. Всё вроде бы хорошо, НО вот что говорит MS Visual Studio:
Цитата:
Ошибка 1 Для нестатического поля, метода или свойства "TestDll.SumTwoInt.GetSum()" требуется ссылка на объект c:\Users\hoz\Documents\Visual Studio 2010\Projects\ImportDll\ImportDll\P rogram.cs 13 21 ImportDll
Содержание решения, в котором нужно использовать методы из dll вот:
PHP код:
using System;
using TestDll;

namespace 
ImportDll
{
    class 
Program
    
{
        static 
void Main(string[] args)
        {
            
int i SumTwoInt.GetSum();
        }
    }

Что ему нужно? Есть какие-то нюансы что-ли? Ведь у меня метод статичный. А MS Visual Studio выдал типа " Для нестатичного метода... "
hoz вне форума Ответить с цитированием
Старый 06.05.2015, 00:52   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Переменные в статическом методе не статического класса, по идее должны быть статическими.
static (Справочник по C#)
Streletz вне форума Ответить с цитированием
Старый 06.05.2015, 08:44   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Переменные в статическом методе не статического класса, по идее должны быть статическими.
static (Справочник по C#)
Что? Вы о чем?

А у автора вроде все нормально в выложенном коде и даже работает. Видимо он что-то скрывает.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.05.2015, 12:11   #4
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Что? Вы о чем?

А у автора вроде все нормально в выложенном коде и даже работает. Видимо он что-то скрывает.
Хм. Так не скрываю я ничего Вот:
http://www.youtube.com/watch?v=fcqSttaR2v8

А вот оба проекта:
Projects.rar
hoz вне форума Ответить с цитированием
Старый 06.05.2015, 12:43   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

похоже что вы скомпилировали сначала вариант без статика, а потом его дописали, но код применяет старую версию потом.
сделайте полное перестроение.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.05.2015, 12:53   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

to hoz
Цитата:
Сообщение от hoz Посмотреть сообщение
Хм. Так не скрываю я ничего Вот:
http://www.youtube.com/watch?v=fcqSttaR2v8

А вот оба проекта:
Вложение 74733
Всё гораздо проще. Надо было просто перестроить dll.
Когда Вы что-то изменяете в dll перестройте её.
to Пепел Феникса
Цитата:
Сообщение от 1497455
похоже что вы скомпилировали сначала вариант без статика, а потом его дописали, но код применяет старую версию потом.
сделайте полное перестроение.
Скорее всего так оно и есть. Только для решения проблемы обычно достаточно перестроить только изменённые проекты.
Streletz вне форума Ответить с цитированием
Старый 06.05.2015, 13:17   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

там два разных решения.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.05.2015, 13:21   #8
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Благодарю всех за участие. Косяк был найден мной только что спонтанно
В общем, я когда перестраивал, то перестроил не туда. Нужно было не в Release, а в Debug. Т.е. перестроил в другую директорию. А брал dll'ку из другой. По сути, потому и не влияло ни перестроение, ни..
Я так понимаю, когда я нажимаю в проекте перестроить, то происходит проверка того в каких проектах он включается или как это понимать?
Я не совсем понял, почему нужно перестроить именно так, и не перестроить само решение dll'ки.
hoz вне форума Ответить с цитированием
Старый 06.05.2015, 18:20   #9
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Если нормальный солюшен, то не надо ничего копировать, студия автоматически подкидывает все нужные дллки в папку с исполняемым файлом.
Настраиваешь в
Solution->Properties->Common Properties->Project Dependencies
зависимость между проектами. И при любых изменениях в коде достаточно жмакнуть по Build.
the_deer_one вне форума Ответить с цитированием
Старый 07.05.2015, 19:17   #10
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от the_deer_one Посмотреть сообщение
Если нормальный солюшен, то не надо ничего копировать, студия автоматически подкидывает все нужные дллки в папку с исполняемым файлом.
Настраиваешь в
Solution->Properties->Common Properties->Project Dependencies
зависимость между проектами. И при любых изменениях в коде достаточно жмакнуть по Build.
Хм. Что-то я такого не нахожу у себя, ни в 2010, ни в 2013 версии Visual'a.
Вот что я вижу если нажать на Проект - Свойства ИМЯ ПРОЕКТА ТЕКУЩЕГО:

1.jpg

Дальше я Общих свойств не наблюдаю.. Да и зависимостей проекта тоже..
hoz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Привязать GUI к проекту MCLotos Общие вопросы по Java, Java SE, Kotlin 2 05.03.2014 21:14
Подключение dll (C++) к проекту VB 6.0 Kverter Visual C++ 0 02.12.2013 14:13
Подключение dll к проекту Zeus_God Помощь студентам 0 06.12.2011 19:34
Как подключить .dll файл к проекту free6878 Помощь студентам 0 03.07.2011 14:33
как привязать DLL Mrbober Visual C++ 1 25.04.2011 13:49