Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
AlexSun
16 / 14 / 1
Регистрация: 03.11.2010
Сообщений: 169
12.11.2012, 17:51     Превратить консольное приложение на C++ в DLL для использования в C# #1
Есть довольно крупное консольное приложение - несколько классов, десятки методов.
Оно принимает с клавиатуры вначале некие параметры и потом в цикле выводит результаты (количество итераций задается).
Мне нужны эти результаты в приложении на C#.

Как сделать из него динамическую библиотеку? Как организовать этот ввод параметров и вывод результата? (последовательность байт, около 2000)
Изменять тип выходного файла и импортировать у себя в приложении я умею.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
13.11.2012, 01:20     Превратить консольное приложение на C++ в DLL для использования в C# #21
Цитата Сообщение от Jupiter Посмотреть сообщение
тогда о каких хедерах речь?
ну какие там в C# есть файлы, где можно определять класс?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AlexSun
16 / 14 / 1
Регистрация: 03.11.2010
Сообщений: 169
13.11.2012, 01:21  [ТС]     Превратить консольное приложение на C++ в DLL для использования в C# #22
Через DLLImport и импортирование отдельных функций не получится?

Добавлено через 27 секунд
Цитата Сообщение от kravam Посмотреть сообщение
ну какие там в C# есть файлы, где можно определять класс?
Никаких.
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
13.11.2012, 01:24     Превратить консольное приложение на C++ в DLL для использования в C# #23
Цитата Сообщение от AlexSun Посмотреть сообщение
Никаких.
А как же он тогда собрался вызывать методы без объявления объекта класса и, соответственно, самого класса? Если даже файлов для определения классов нет.
AlexSun
16 / 14 / 1
Регистрация: 03.11.2010
Сообщений: 169
13.11.2012, 01:31  [ТС]     Превратить консольное приложение на C++ в DLL для использования в C# #24
Я не знаю как он собрался вызывать методы без объявления объекта класса и, соответственно, самого класса. Мне поможете?
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
13.11.2012, 01:39     Превратить консольное приложение на C++ в DLL для использования в C# #25
Тьфу, я уже запутался. Если ты, AlexSun, не можешь объявить класс (сам же сказал, что нету даже файлов ни заголовочных, никаких, где можно было бы этот класс прописать), как ты будешь создавать объект класса и соответственно, вызывать метод?

Цитата Сообщение от AlexSun Посмотреть сообщение
чтоб использовать оттуда 2 метода
классов нет, объектов нет, а методы есть. Гениально.
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
13.11.2012, 01:49     Превратить консольное приложение на C++ в DLL для использования в C# #26
Цитата Сообщение от kravam Посмотреть сообщение
Если ты, AlexSun, не можешь объявить класс (сам же сказал, что нету даже файлов ни заголовочных, никаких, где можно было бы этот класс прописать), как ты будешь создавать объект класса и соответственно, вызывать метод?
можно написать функции обертки которые внутри библиотеки будет создавать класс, вызывать что надо

Добавлено через 5 минут
вот нашел в своих закладках
http://www.sdteam.com/t206
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
13.11.2012, 01:55     Превратить консольное приложение на C++ в DLL для использования в C# #27
Ради двух методов огород городить... Мда... Проще уж как я сказал, две аккуратненькие функции НЕ МЕТОДЫ.
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
13.11.2012, 02:04     Превратить консольное приложение на C++ в DLL для использования в C# #28
Цитата Сообщение от ValeryS Посмотреть сообщение
могу предложить тебе следующий вариант
программа на шарпе вызывает программу на плюсах
та в свою очередь выдает свои данные не на экран а в файл(можно файл проецируемый в память)
а шарповая программа считывает эти данные и использует как нужно
Думаю самый легкий и не хлопотный путь...
Ну еще можно DDE или COM лепить.
Но принцип тот же что из с ф-циями в dll входные параметры -> выходные параметры и оба вида параметров понятные обоим языкам.

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

К примеру ни разу не встречал что бы можно было прикручивать dll с классами скомпилированные в одной IDE прикручивались к проектам в другой IDE
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2012, 09:53     Превратить консольное приложение на C++ в DLL для использования в C#
Еще ссылки по теме:

Какое консольное mini-приложение можно сделать с использованием классов (для практики)? C++
C++ Консольное приложение C++ без использования vcredist
Создать консольное приложение на С/С++ для обработки и печати текста C++

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

Или воспользуйтесь поиском по форуму:
AlexSun
16 / 14 / 1
Регистрация: 03.11.2010
Сообщений: 169
13.11.2012, 09:53  [ТС]     Превратить консольное приложение на C++ в DLL для использования в C# #29
Цитата Сообщение от kravam Посмотреть сообщение
Тьфу, я уже запутался. Если ты, AlexSun, не можешь объявить класс (сам же сказал, что нету даже файлов ни заголовочных, никаких, где можно было бы этот класс прописать), как ты будешь создавать объект класса и соответственно, вызывать метод?


классов нет, объектов нет, а методы есть. Гениально.
Я тоже запутался. В C++ все есть. Классов несколько, методов оттуда вызвать мне нужно только 2. Все остальное само там делается.
В C# все делается в *.cs файлах...
Yandex
Объявления
13.11.2012, 09:53     Превратить консольное приложение на C++ в DLL для использования в C#
Ответ Создать тему
Опции темы

Текущее время: 04:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru