Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интерфейс C# бизнес_логика - С++, Вызывать из C# функционал С++ 
:(
    Опции темы
qwerasdf
Дата 16.6.2011, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.6.2011

Репутация: нет
Всего: нет



Есть интерфейс на C#. Есть код на плюсах с кучей библиотек и функций, переписывать которые под шарп - гиблое дело. (Их там жуткое кол-во, а сами либы изначально на дельфи настрочены, + они закрыты от просмотра. Но под плюсами есть возможность их поюзать).
 Суть вопроса в следующем: Насколько реально создать на плюсах консольное приложение и подрубить его к C# интерфейсу? Или есть более простые способы вызывать из шарпов плюсовый функционал?
PM MAIL   Вверх
jonie
Дата 16.6.2011, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Цитата(qwerasdf @  16.6.2011,  11:53 Найти цитируемый пост)
Суть вопроса в следующем: Насколько реально создать на плюсах консольное приложение и подрубить его к C# интерфейсу? Или есть более простые способы вызывать из шарпов плюсовый функционал? 

наиболее простым способом C++ <=> C# мне кажется использование COM подсистемы. Т.е. вы на C++ оборачиывате ваши библотеки COM Wrapper-ом, а в C# используете автогенереные tlbimpl-ом классы.

В тоже время, существует возможность использовать C++/CLR, но ябы не стал по причине малого количества информации по проблемам и общего своего незнания этой темы...

Есть еще вариант использовать PInvoke (вызывать экспортируемые из сишных либ DLL функции), но он ущербен т.к. класс экспортировать из длл-ки C++ и импортировать в C# почти нереально.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
KelTron
Дата 16.6.2011, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 9
Всего: 38



Написать DLL-ку на C++/CLI - обёртку над чистыми С++ библиотеками, и далее подключить к C# проекту..
http://ru.wikipedia.org/wiki/C%2B%2B/CLI

Добавлено @ 12:31
Опоздал..)

Это сообщение отредактировал(а) KelTron - 16.6.2011, 12:31


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
qwerasdf
Дата 16.6.2011, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.6.2011

Репутация: нет
Всего: нет



Благодарю, что так быстро откликнулись %)

Цитата(jonie @  16.6.2011,  12:23 Найти цитируемый пост)
Т.е. вы на C++ оборачиывате ваши библотеки COM Wrapper-ом, а в C# используете автогенереные tlbimpl-ом классы.

А где можно про сие почитать по-подробнее? 
PM MAIL   Вверх
jonie
Дата 16.6.2011, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Цитата(qwerasdf @  16.6.2011,  12:49 Найти цитируемый пост)

А где можно про сие почитать по-подробнее?  

книжки и MSDN ? Например в Троелсене есть целая глава "взаимодействие с унаследованным кодом".. думаю там про COM должно быть...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
qwerasdf
Дата 16.6.2011, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.6.2011

Репутация: нет
Всего: нет



Цитата(KelTron @  16.6.2011,  12:30 Найти цитируемый пост)
Написать DLL-ку на C++/CLI - обёртку над чистыми С++ библиотеками, и далее подключить к C# проекту..
http://ru.wikipedia.org/wiki/C%2B%2B/CLI

А где можно увидеть пример подобной обёртки?  Что-то гуглить разучился, ничего нормального найти не могу. =(
PM MAIL   Вверх
jonie
Дата 16.6.2011, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Цитата(qwerasdf @  16.6.2011,  12:55 Найти цитируемый пост)

А где можно увидеть пример подобной обёртки?  Что-то гуглить разучился, ничего нормального найти не могу. =( 

http://stackoverflow.com/questions/4985907/wrapper-to-c-cli

<offtop>
А вы видели что в C++ появился "новый" "деструктор" типа
Код

class classname {
   ~classname() {}   // destructor
   !classname() {}   // finalizer
};


ужОс...
</offtop>


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
qwerasdf
Дата 17.6.2011, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.6.2011

Репутация: нет
Всего: нет



Всем спасибо, всё вродь как получается.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0965 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.