![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| ClockWork |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 14.2.2007 Репутация: нет Всего: нет |
Здравствуйте, люди. Пишу на C# совсем недавно, и только осваиваю эту технологию. Проект совсем малюсинький, но возникла следующая ситуация. Дали мне несколько подпрограмм, написанных на C++. Вопрос: могу ли использовать их в своем C# проекте или мне придется переводить их на этот язык (C# Заранее спасибо за развернутые ответы. ;) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Что дали ? Код (.h/.cpp), либрари (.h/.lib), скомпилированный dll ?
Если код, то теоретически можно заюзать C++/CLI, конкретнее можно узнать у других участников форума. Если длл, то экспортируемые функции легко юзаются через [DllImport]. -------------------- ![]() |
|||
|
||||
| ClockWork |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 14.2.2007 Репутация: нет Всего: нет |
Дали код .h/.c . В нем описаны два метода.. Тока кажись одному из этих методов в качестве параметра надо указатель передавать то ли функцию, то ли еще на что..
Вот. Если не сложно - опишите подробенее как добиться этой самой интеграции. З.Ы. Юзаю VS 2005 (не знаю, может это играет какую роль).. |
|||
|
||||
| marcusmae |
|
||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
1) В один Solution Вы можете включить проекты на C++ и на C#. Попробуйте скомпилить свои программки на C++ с опцией /clr.
2) Если благополучно, то далее, по обстоятельствам. Два варианта. Первый : изъять из кода адреса, указатели, переключить используемые библиотеки <stdio.h>, ... на эквивалентные из .NET Framework - фактически, это будет означать переписывание Ваших программ с обычного C++ на C++.NET. Чтобы начать использовать код, останется только подключить ссылку на этот C++-ный проект в проект на C#. Второй : написать managed обёртку unmanaged-классов, которые Вы хотите использовать из C#. Вот пример того, как обёртывать unmanaged-класс, использующий STL :
Оба варианта в принципе требуют некоторых трудозатрат. 3) Если у Вас не код, а dll (exe) на С, то их функции можно импортировать в C#-ую программу с помощью DllImport :
Это сообщение отредактировал(а) marcusmae - 14.2.2007, 16:41 -------------------- ἀπὸ μηχανῆς θεός |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |