Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 0
Регистрация: 22.10.2012
Сообщений: 14

Использование метода другой программы

28.02.2013, 22:43. Показов 1495. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите пожалуйсто как реализовать и возможно ли.
У меня есть программа в ней метод
public static void SlozhnyeVychislenija(ref double?[] stolbecX, ref double?[] stolbecY, ref double ljambda)
{
...
}
Причем если надо чтооо поменять я могу
И есть другое приложение котому необходимо использовать этот метод
OneProga.exe
TwoProga.exe
Каким образом из второй программы скомпилированной, можно использовать метод первой программы и вернуть значения stolbecX и stolbecY посчитаные методом?
Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2013, 22:43
Ответы с готовыми решениями:

Использование метода Equals и оператора ==
Имеется код double a = 3; double b = a; object o = b; Console.WriteLine(o.Equals(3)); Console.WriteLine(o == (object)3); ...

Использование метода CreateDialog из WinAPI
Помогите разобраться как воспользоваться функцией CreateDialog в с#. делаю так далее нужно написать прототип этой функции но я не знаю...

Использование метода из dll (C++) с callback аргументами в C# программе?
Уже всю голову сломал, не могу разобраться с тем, как сопоставить типы данных параметров. Расскажу подробнее. Есть радиоприемник...

6
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
28.02.2013, 23:44
Серёёёга, запустить декомпилятор, получить исходный код, вырвать нужный метод, создать для него файл .cs, записать туда этот метод (не забыв поместить его в класс), после этого вызвать компилятор для этого класса,.... В общем много чего нужно.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
02.03.2013, 08:07
А вторая программа уже запущена или нужно вызвать метод при запуске второй программы? Вторая программа написана тобой или уже готова и у тебя нет исходников? Или ты хочешь написать 2 программы и из первой программы вызывать метод во второй программе?
0
2 / 2 / 0
Регистрация: 22.10.2012
Сообщений: 14
04.03.2013, 00:06  [ТС]
Да! Обе программы написаны мной! Хочу из одно вызавыть метод другой! именно так! Есть такая возможность?
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
04.03.2013, 01:42
А общая dll не подойдёт?

Добавлено через 17 минут
Класс во второй программе:
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
29
namespace ConsApp_VerifyText
{
    public class TextHelper
    {
        /// <summary>
        /// Проверяет текст посимвольно на кол-во совпадений и несовпадений.
        /// </summary>
        /// <param name="originalText">Оригинальный текст</param>
        /// <param name="verifiableText">Проверяемый текст</param>
        /// <param name="coincidence">Точное совпадение</param>
        /// <param name="mismatch">Несовпадение</param>
        /// <returns>Вернёт true, если проверяемый текст полностью совпадает с эталонным</returns>
        public static bool CheckText(string originalText, string verifiableText, out int coincidence, out int mismatch)
        {
            int iterationQuantity = originalText.Length > verifiableText.Length
                                       ? verifiableText.Length
                                       : originalText.Length;
            mismatch = coincidence = 0;
            for (int i = 0; i < iterationQuantity; i++)
            {
                if (originalText[i] == verifiableText[i])
                    coincidence++;
                else
                    mismatch++;
            }
            return originalText.Length == verifiableText.Length && mismatch == 0;
        }
    }
}
Вызываем метод из другой программы:
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
29
30
using System;
using System.IO;
using System.Reflection;
 
namespace ConsApp_CallMethod
{
    class Program
    {
        private const string ExeName = "ConsApp_VerifyText.exe";
 
        static void Main(string[] args)
        {
            Assembly assembly = Assembly.LoadFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ExeName));
            Type textHelper = assembly.GetType("ConsApp_VerifyText.TextHelper", true);
            MethodInfo mi = textHelper.GetMethod("CheckText");
            object[] parameters =
                {
                    "Текст", "Тесст", 0, 0
                };
 
            bool identicalText = (bool)mi.Invoke(textHelper, parameters);
            int coincidence = (int)parameters[2];
            int mismatch = (int)parameters[3];
            Console.WriteLine("Текст {0}", identicalText ? "совпал" : "не совпал");
            if (!identicalText)
                Console.WriteLine("Совпадений: {0}, Ошибок: {1}", coincidence, mismatch);
            Console.ReadKey();
        }
    }
}
Вложения
Тип файла: zip ConsApp_CallMethod.zip (18.7 Кб, 3 просмотров)
1
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
04.03.2013, 01:55
По идее можно ещё так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    class Program
    {
        private const string ExeName = "ConsApp_VerifyText.exe";
 
        static void Main(string[] args)
        {
            Assembly assembly = Assembly.LoadFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ExeName));
            dynamic textHelper = assembly.GetType("ConsApp_VerifyText.TextHelper", true);
            int coincidence, mismatch;
            bool identicalText = (bool)textHelper.CheckText("Текст", "Тесст", out coincidence, out mismatch);
            Console.WriteLine("Текст {0}", identicalText ? "совпал" : "не совпал");
            if (!identicalText)
                Console.WriteLine("Совпадений: {0}, Ошибок: {1}", coincidence, mismatch);
            Console.ReadKey();
        }
    }
Но как вызвать static метод из dynamic типа я не вкурсе, так что с данным эксешником, что использовал я не срабатывает, так как нет нестатического методо CheckText. Вроде бы должно работать.
2
2 / 2 / 0
Регистрация: 22.10.2012
Сообщений: 14
04.03.2013, 11:27  [ТС]
Спасибо! Сейчас попробую!

Добавлено через 2 часа 49 минут
Casper-SC То что нужно, большое спасибо!!! Дальше разберусь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2013, 11:27
Помогаю со студенческими работами здесь

Передать переменную из одного метода в другой
Есть класс. В нем 2 метода: пусть будут private void textBox1_TextChanged(object sender, EventArgs e) и private void...

Значение переменной из одного метода в другой
Привет ребята! Я создал переменную в Классе и использую в методе . Как можно ее значение из метода использовать в другом без Return и если...

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

Использование метода POST в ASP.NET
в АСП с этим просто: &lt;form method=post action='file2.asp'&gt; &lt;input type=submit&gt; ... и в file2.asp пишу например так: ...

Запуск метода из другой страницы
Всем доброго времени заранее извините за нубские вопросы. Имеется MainWindow в нем есть Frame и есть Button1 . При нажатии Button1 в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru