Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
23 / 21 / 4
Регистрация: 03.11.2010
Сообщений: 169

Превратить консольное приложение на C++ в DLL для использования в C#

12.11.2012, 17:51. Показов 6460. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть довольно крупное консольное приложение - несколько классов, десятки методов.
Оно принимает с клавиатуры вначале некие параметры и потом в цикле выводит результаты (количество итераций задается).
Мне нужны эти результаты в приложении на C#.

Как сделать из него динамическую библиотеку? Как организовать этот ввод параметров и вывод результата? (последовательность байт, около 2000)
Изменять тип выходного файла и импортировать у себя в приложении я умею.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2012, 17:51
Ответы с готовыми решениями:

Консольное приложение C++ без использования vcredist
Доброго времени суток! Написал маленькую программулинку в VS2012, но для запуска на старых машинах она требует vcredist 2012. Возможно...

Граф. приложение+библиотеки+консольное приложение! Не работает программа без использования консоли. Если использую, то всё прекрасно работает.
Ребята нужна помощь,все вроде сделал, но приложение начинает зависать при запуске без использования консоли, если использую ее то все...

Консольное приложение + объединение с DLL
Доброго времени суток. Не судите меня за такую тему, их уже сотни, но ни в одной я разобраться не смог. Читал и за ILMerge и за другие...

28
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
13.11.2012, 01:20
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Jupiter Посмотреть сообщение
тогда о каких хедерах речь?
ну какие там в C# есть файлы, где можно определять класс?
0
23 / 21 / 4
Регистрация: 03.11.2010
Сообщений: 169
13.11.2012, 01:21  [ТС]
Через DLLImport и импортирование отдельных функций не получится?

Добавлено через 27 секунд
Цитата Сообщение от kravam Посмотреть сообщение
ну какие там в C# есть файлы, где можно определять класс?
Никаких.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
13.11.2012, 01:24
Цитата Сообщение от AlexSun Посмотреть сообщение
Никаких.
А как же он тогда собрался вызывать методы без объявления объекта класса и, соответственно, самого класса? Если даже файлов для определения классов нет.
0
23 / 21 / 4
Регистрация: 03.11.2010
Сообщений: 169
13.11.2012, 01:31  [ТС]
Я не знаю как он собрался вызывать методы без объявления объекта класса и, соответственно, самого класса. Мне поможете?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
13.11.2012, 01:39
Тьфу, я уже запутался. Если ты, AlexSun, не можешь объявить класс (сам же сказал, что нету даже файлов ни заголовочных, никаких, где можно было бы этот класс прописать), как ты будешь создавать объект класса и соответственно, вызывать метод?

Цитата Сообщение от AlexSun Посмотреть сообщение
чтоб использовать оттуда 2 метода
классов нет, объектов нет, а методы есть. Гениально.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
13.11.2012, 01:49
Цитата Сообщение от kravam Посмотреть сообщение
Если ты, AlexSun, не можешь объявить класс (сам же сказал, что нету даже файлов ни заголовочных, никаких, где можно было бы этот класс прописать), как ты будешь создавать объект класса и соответственно, вызывать метод?
можно написать функции обертки которые внутри библиотеки будет создавать класс, вызывать что надо

Добавлено через 5 минут
вот нашел в своих закладках
http://www.sdteam.com/t206
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
13.11.2012, 01:55
Ради двух методов огород городить... Мда... Проще уж как я сказал, две аккуратненькие функции НЕ МЕТОДЫ.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
13.11.2012, 02:04
Цитата Сообщение от ValeryS Посмотреть сообщение
могу предложить тебе следующий вариант
программа на шарпе вызывает программу на плюсах
та в свою очередь выдает свои данные не на экран а в файл(можно файл проецируемый в память)
а шарповая программа считывает эти данные и использует как нужно
Думаю самый легкий и не хлопотный путь...
Ну еще можно DDE или COM лепить.
Но принцип тот же что из с ф-циями в dll входные параметры -> выходные параметры и оба вида параметров понятные обоим языкам.

Цитата Сообщение от ValeryS Посмотреть сообщение
Что-то я сомневаюсь что класс превращается в структуру.
не превращается если явно не задашь компилировать как С
но тогда твои функции из понятных имен будут зашифрованы по соглашению плюсов
вообще длл проще писать с нуля, используя наработанный код
Да только стоит заметить что подобные шифровки, делают понятной dll только для данного компилятора.

К примеру ни разу не встречал что бы можно было прикручивать dll с классами скомпилированные в одной IDE прикручивались к проектам в другой IDE
0
23 / 21 / 4
Регистрация: 03.11.2010
Сообщений: 169
13.11.2012, 09:53  [ТС]
Цитата Сообщение от kravam Посмотреть сообщение
Тьфу, я уже запутался. Если ты, AlexSun, не можешь объявить класс (сам же сказал, что нету даже файлов ни заголовочных, никаких, где можно было бы этот класс прописать), как ты будешь создавать объект класса и соответственно, вызывать метод?


классов нет, объектов нет, а методы есть. Гениально.
Я тоже запутался. В C++ все есть. Классов несколько, методов оттуда вызвать мне нужно только 2. Все остальное само там делается.
В C# все делается в *.cs файлах...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2012, 09:53

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

Как из проекта .dll сделать консольное приложение?
Всем привет еще раз, У меня есть еще один вопрос. Пусть я создал новый проект, типа Win32 .dll, а потом решил переделать его и сделать...

Просто консольное приложение требует dll на Винде
Здравствуйте, Собрал простенькое консольное приложение, на компах, где установлен VS2017 все естесвенно работает, но решил попробывать...

Создать консольное .NET приложение использующее описанный DLL-модуль
Разработать и реализовать на платформе Microsoft .NET (используя язык программирования C#, VB.NET или другой .NET язык) DLL-модуль с...

Создал первое консольное приложение. Выдает ошибка msvcp140.dll и кириллица слетает
Насколько я понимаю не хватает dll на пк где НЕ установлена VS2017 Вопрос как вложить эти файлы в исходник и почему кодировка не...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru