1 / 1 / 1
Регистрация: 03.02.2010
Сообщений: 89

С консольного приложения в Dll, Windows Form!

15.11.2011, 10:56. Показов 7226. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание такое: сделать массив для сохранения веса студентов группы из 20 человек. Заполнить массив с помощью класса Random целыми числами в диапазоне от 50 до 100 включительно. Отсортировать массив и вывести на консоль его элементы.
Задание сделано... Вот решение:
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
27
28
namespace Lab1
{
    class Program
    {
        static void Main(string[] args)
        {
            Random realRnd = new Random();
            int[] array1 = new int[20];
 
            int min = 50, max = 100;
            Console.WriteLine("Випадковi числа в дiапазонi [" + min + "," + max + "]");
            Array.Sort(array1);
            for (int i = 0; i < 20; i++)
            {
                array1[i] = realRnd.Next(min, max);
                
                Console.WriteLine("Вага студента = " + array1[i] + " кг");
            }
            Console.WriteLine("\nТi ж самi числа, але вже вiдсортованi:");
            Array.Sort(array1);
            for (int i = 0; i < 20; i++)
            {
              Console.WriteLine("Вага студента = " + array1[i] + " кг");
            }
            Console.ReadKey();
        }
    }
}
Но теперь ещё есть дополнительное задание с которым я несправился(.
1) Создать DLL-библиотеку, которая содержит реализацию задания. Указать XML-коментарии.
2) Создать решение, которое включает DLL-библиотеку, консольный проэкт, который тестирует работу библиотечных методов.
3) Создать Windows-проэкт в том самом решении, который включает библиотечные методы.
4) Создать DLL-библиотеку как отдельное решение. Связать библиотеку с Windows-проэктом.
Помогите с реализацией. Спасибо!

Добавлено через 22 часа 10 минут
Что никто неможет подсказать какой код нужно вписать в длл а какой тогда в новый консольный калькулятор???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2011, 10:56
Ответы с готовыми решениями:

Перевод консольного приложения в Windows Form
Доброго времени суток , вот код , который вызывает все ссылки javascript моего сайта в console Помогите пожалуйста переделать его в...

Перевод консольного приложения на Windows Form
Перевести этот код в Visual Studio 2010 в Wuindows Form Application Module Module1 Sub Main() Dim ar As Integer() ...

Перевод консольного приложения на Windows Form
Сортировка слиянием Public Sub MergeSort(ByRef Arr() As Double, ByVal N As Long) Dim C As Boolean Dim I As Long ...

28
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
15.11.2011, 12:36
1) Создать DLL-библиотеку, которая содержит реализацию задания. Указать XML-коментарии.

Создать библиотеку можно 2-мя вариантами,
1 - Создать проект типа class library (.dll)
2 - В свойствах уже существующего проекта - вкладка Application - Output type = class library;

Только от метода Main избавься, перенеси всю логику в отдельный public метод.

2) Создать решение, которое включает DLL-библиотеку, консольный проэкт, который тестирует работу библиотечных методов.

запускаешь build Solution, чтобы твоя библиотека скомпилировалась
В тестовом консольном проекте правой кнопкой на References - Add Reference - Browse - и добавляешь свою библиотеку. Подключаешь ее командой using и пользуешься.
0
1 / 1 / 1
Регистрация: 03.02.2010
Сообщений: 89
15.11.2011, 12:41  [ТС]
Создаю длл через библиотеку классов. Просто я незнаю какой код вписать в длл а также как потом в новом консольном калькляторе вписать чтобы оно брало функцию с той длл. Как подключать длл к проэкту и всё остальное я знаю...
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
15.11.2011, 12:51
Какой код - зависит от твоей задачи. Я думаю пойдет какой нибудь статический класс со статическим методом. Чтобы не создавать экземпляры класса только из-за пользования методом
короче, на пример ДЛЛ со статическим классом

C#
1
2
3
4
5
6
7
8
9
10
11
12
using System;
 
namespace LPTprovider
{
  public static class LptPortHelper
  {
    public static int CalculateSomething(int a, int b)
    {
      return a + b;
    }
  }
}

И твоя консольная прога:


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using LPTprovider;
 
namespace test1
{
  class Program
  {
    static void Main(string[] args)
    {
      Console.Write(LptPortHelper.CalculateSomething(2, 2));
      Console.ReadKey();
    }
  }
}
1
1 / 1 / 1
Регистрация: 03.02.2010
Сообщений: 89
15.11.2011, 13:05  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace DLL1
{
    public class MyfirstDll
    {
        public static int CalculateSomething(int array1)
        {
            Random realRnd = new Random();
            int[] array1 = new int[20];
            int min = 50, max = 100;
            for (int i = 0; i < 20; i++)
            {
                array1[i] = realRnd.Next(min, max);
            }
            return array1;
        }
    }
}
Вот такое накидал для длл. Правильно?
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
15.11.2011, 14:09
можно тогда и сам класс сделать static

1 у тебя метод должен возвращать int а возвращает int[]
2 а зачем ты над аргументом array1 издеваешься, заменяешь его на новый массив. Тут как то совсем все запутано написано.

C#
1
public static int[] CalculateSomething()
0
1 / 1 / 1
Регистрация: 03.02.2010
Сообщений: 89
15.11.2011, 14:13  [ТС]
Если правильно что тогда нужно вписать в консольное прложение чтобы оно показывало те данные с длл???
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
15.11.2011, 14:17
C#
1
2
3
4
5
6
7
8
9
10
11
12
using DLL1;
 
namespace TraTaTa
{
  class Program
  {
    static void Main(string[] args)
    {
       int[] array = MyfirstDll.CalculateSomething();
    }
  }
}
где-то так
0
1 / 1 / 1
Регистрация: 03.02.2010
Сообщений: 89
15.11.2011, 15:23  [ТС]
а почему при построении длл ругается вот на эту строчку:
C#
1
int[] array1 = new int[20];
Ошибка 1 Невозможно объявить локальную переменную с именем "array1" в этой области видимости, т.к. она придаст другое значение "array1", которая уже используется в области видимости "родительский или текущий" для обозначения чего-то другого
И вот на эту:
C#
1
return array1;
Ошибка 2 Неявное преобразование типа "int[]" в "int" невозможно
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
15.11.2011, 15:27
потому что сам твой метод имеет аргумент int array1
имя это уже для другой переменной не можешь использовать, а ты еще пытаешься сделать вместо инта массив с таким же именем.

Я ж тебе правил эту строчку,

C#
1
public static int[] CalculateSomething()
1
1 / 1 / 1
Регистрация: 03.02.2010
Сообщений: 89
15.11.2011, 16:55  [ТС]
Это сделал... Всё заработало, спасибо. А как теперь сделать тоже самое только в Windows Forms? Добавил на форму две кнопки и два richTextBox. Одна кнопка называется "показать масив" а вторая "отсортировать". И что нужно написать на свойство кнопки онклик чтобы в тех эдитах показывались данные массива?

Добавлено через 17 минут
Добавил для первой кнопки на свойство онклик следующее:
C#
1
2
3
4
5
6
private void button1_Click(object sender, EventArgs e)
        {
            int[] array = MyfirstDll.CalculateSomething();
            for (int i = 0; i < 20; i++)
                richTextBox1.Text = "Вага студента = " + array[i] + " кг";
        }
Но проблема в том что оно показывает только одну строчку а не целый массив в первом текстбоксе. Как решить?
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
15.11.2011, 17:13
1 - ты в каждом проходе цикла обновлял значение richTextBox1.Text, а нужно было прибавлять
2 - символы "\n" переносят вывод на новую строку

C#
1
2
3
4
5
int[] array = MyfirstDll.CalculateSomething();
for (int i = 0; i < 20; i++)
{
   richTextBox1.Text += "Вага студента = " + array[i] + " кг \n";
}
а еще лучше:
C#
1
for (int i = 0; i < array.Lenght; i++)
1
1 / 1 / 1
Регистрация: 03.02.2010
Сообщений: 89
16.11.2011, 12:49  [ТС]
Ещё один такой простенький вопрос: в чём разница между этими двумя пунктами в задании:
3) Создать Windows-проэкт в том самом решении, который включает библиотечные методы.
4) Создать DLL-библиотеку как отдельное решение. Связать библиотеку с Windows-проэктом.
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
16.11.2011, 13:37
В студии решение (Solution) это самая главная сущность, которая может в себя включать несколько проектов, как dll, так и WinForms проектов.
Я так понимаю твои задачи:

3 - dll и WinForm должны быть в одном Solution
(Открываешь свою dll, Клик правой кнопкой на Solution - Add - New Project - Win Form Application)

4 - отдельно созданное WinForm приложение, в которое ты подключаешь уже готовую dll
0
1 / 1 / 1
Регистрация: 03.02.2010
Сообщений: 89
16.11.2011, 13:57  [ТС]
Вот посмотрите пожалуйста как сделал я. И покажите пожалуйста на примере как сделать 4 пункт. Спасибо!
Вложения
Тип файла: rar Lab1.rar (90.5 Кб, 16 просмотров)
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
16.11.2011, 14:19
У меня студия 2008, так что я открыть не могу твой проект,
На, это наброски:

Не забудь, что когда ты изменяешь dll, в проекте 3 студия сама об этом заботиться,
а в проекте 4 тебе нужно новую dll самому копировать из проекта 3 в проект 4
Вложения
Тип файла: rar Lab1_item3_item4.rar (69.1 Кб, 15 просмотров)
1
1 / 1 / 1
Регистрация: 03.02.2010
Сообщений: 89
16.11.2011, 14:21  [ТС]
А как это сделать? Я имею ввиду 4 задание? Куда заходить нужно??? Случайно не так:
Проэкт - добавить сылку - обзор... и указать ту длл
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
16.11.2011, 14:28
именно так! Я тебе отправил два решения для п3 и для п4.
0
1 / 1 / 1
Регистрация: 03.02.2010
Сообщений: 89
16.11.2011, 15:07  [ТС]
Тогда полючается между этими заданиями разница только в том что там выбираеш с тех что уже есть - когда нажимаеш добавить ссылку там выбирается сразу подменю "проэкты" и выбираеш уже с существующих... А в 4 выбираеш "Обзор" и указываеш где лежить твоя длл и всё? Просто всё очень просто... зачем было такие похожие задания давать я непонимаю тогда...
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
16.11.2011, 15:51
А вот в чем разница, преподаватель наверняка тебя спросит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2011, 15:51
Помогаю со студенческими работами здесь

Переделать программу из консольного приложения в Windows Form
Помогите переделать программу из консольного приложения в Windows Form в Visual Studio 2008, пожалуйста:)

Из консольного приложения в dll
Доброго времени суток. Есть консольный проект который нужно переделать в dll библиотеку. Вызываться из другой программы будет лишь одна...

Перенос кода консольного приложения в DLL
Была написана программа (а именно классы) которая работала для консоли. Теперь хочу перегнать это дело в виндоус форм и затем сделать из...

Нужно создать dll из консольного приложения
Всем привет! У меня есть проект типа &quot;консольное приложение&quot;. Мне нужно скомпилировать его в dll. В VS и C# я мало смыслю. При поисках...

Компиляция консольного приложения. Ошибка msvcp120.dll
Добрый день. Cсоздаю проект консольного приложения фреймворк 2.0 ставлю(не знаю влияет ли это на проблему) Компилировал на релизе на двух...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru