Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2011, 22:58   #1
scailfon
Новичок
Джуниор
 
Регистрация: 04.06.2011
Сообщений: 5
По умолчанию Использование методов из проекта на С++ в проекте на C#

Возникла необходимость использовать методы, написанные на С++, в проекте на С#. Как нужно подгрузить С++ файлы, чтобы методы из них можно было вызывать в проекте на С#?
scailfon вне форума Ответить с цитированием
Старый 04.06.2011, 23:00   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Оформляете С++ код в виде DLL и эту "неуправляемую" DLL используете в шарпе.
pu4koff вне форума Ответить с цитированием
Старый 05.06.2011, 00:59   #3
scailfon
Новичок
Джуниор
 
Регистрация: 04.06.2011
Сообщений: 5
По умолчанию

Спасибо за быстрый ответ! теперь стало ясно как это сделать
scailfon вне форума Ответить с цитированием
Старый 05.06.2011, 20:15   #4
scailfon
Новичок
Джуниор
 
Регистрация: 04.06.2011
Сообщений: 5
По умолчанию

переписывая код С++ под Dll, вылезла следующая ошибка :

__declspec(dllexport) cannot be applied to a function with the __clrcall calling convention.

в коде используется managed типы, отсюда возникает вопрос: Можно перевести managed методы в "unmanaged" Dll??? Если да, то как ???
scailfon вне форума Ответить с цитированием
Старый 05.06.2011, 20:50   #5
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

managed типы в любом случае не вернёте...
мм, а откуда у Вас managed в С++?
Spawn™Production® вне форума Ответить с цитированием
Старый 05.06.2011, 21:32   #6
scailfon
Новичок
Джуниор
 
Регистрация: 04.06.2011
Сообщений: 5
По умолчанию

хочу отправить в Dll класс, методы которого возвращают значение типа StringCollection^ , и потом пользоваться ими в форме, написанной на С#. Есть варианты как это сделать? Статья http://msdn.microsoft.com/ru-ru/library/ms235636.aspx - не помогла
scailfon вне форума Ответить с цитированием
Старый 06.06.2011, 17:02   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Раз у вас управляемый C++, т.е. использующий .NET, то тут всё несколько проще должно быть.
Создаёте в студии проект на С++ "ClassLibrary" (должен быть такой шаблон для создания DLL). Создастся заготовка, в которую помещаете свои классы. Компилите, получаете DLL.
Потом создаёте нужный проект на шарпе. Там в проекте будет раздел References. Жмете правую кнопочку и Add Reference. Там вкладка Browse и добавляете свою DLL.
Всё. Теперь можно использовать классы из DLL как родные (не забывайте только пространства имён указывать).
pu4koff вне форума Ответить с цитированием
Старый 06.06.2011, 23:40   #8
scailfon
Новичок
Джуниор
 
Регистрация: 04.06.2011
Сообщений: 5
По умолчанию

) Вчера уже дошла до такого решения и сделала сценарий, как вы порекомендовали. Только проблема: ссылку на Dll, я установила, в проекте на C# эта библиотека определилась, пространство имен тоже видно, а вот методы не видны. Может перед определением класса с методами еще какое-н ключевое слово нужно поставить?
scailfon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переопределение методов. попытка 1 The Best Общие вопросы .NET 0 20.01.2010 18:21
Использование методов вне класса prikolist Общие вопросы C/C++ 12 07.05.2009 13:57
наследование методов TaTT DoGG Общие вопросы .NET 4 27.02.2009 01:27
Использование DLL от третьей стороны в своем проекте Yuran Общие вопросы Delphi 10 02.06.2008 19:04