Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > C# и C++ в одном solution'е


Автор: AtroX 9.9.2005, 12:18
Как мне использовать классы C++ одного проекта в проекте на C#, если они находятся в одном solution'е?
И можно ли в одном проекте использовать несколько языков?

Хотелось бы использовать уже существующие проекты C++, без их переделки.

Автор: Denn 9.9.2005, 12:25
Можно, это одно из основных свойств CLR и .NET. Только ограничение - можно использовать из одного языка фичи из другого, которые совместимы CLR. Подключаешь namespace как обычно и юзаешь классы другого языка.

Автор: Дрон 9.9.2005, 12:28
Цитата(Denn @ 9.9.2005, 13:25)
Подключаешь namespace как обычно и юзаешь классы другого языка.

Только если там managed C++, для обычно С++ так просто сделать не выйдет.

Автор: Denn 9.9.2005, 12:40
Дрон конечно MC++.

Автор: AtroX 9.9.2005, 15:16
Как раз хочется не писать такой фигни:
Код

public __gc class TestClass {
};


А использовать уже готовы классы из C++ проекта в C# проекте.
Как это сделать, или где про это можно прочитать?

Автор: Дрон 9.9.2005, 15:18
Цитата(AtroX @ 9.9.2005, 16:16)
А использовать уже готовы классы из C++ проекта в C# проекте.

Мне как-то нужно было то же самое -- я просто сделал из С++ класса COM объект, который уже вставил в проект на C#.

Автор: AtroX 9.9.2005, 15:55
Так в общем можно обернуть обычный class в managed class.
Зачем COM было делать? =) Это ведь либо наследуешься от IUnknown, либо оборачиваешь свое в наследника IUnknown.

Автор: mr.DUDA 9.9.2005, 15:59
В VS2005 вроде бы обещают "правильный" С++, сам не проверял.

Автор: Дрон 9.9.2005, 16:01
Цитата(AtroX @ 9.9.2005, 16:55)
Зачем COM было делать? =)

У меня там был графический контрол (рисовал графики) -- я сделал для него ActiveX обёртку.
Да и просто любопытно было smile

Цитата(AtroX @ 9.9.2005, 16:55)
Так в общем можно обернуть обычный class в managed class.

Я с managed C++ как-то связываться не хочу.

Автор: Coocky 9.9.2005, 17:32
Цитата
я просто сделал из С++ класса COM объект, который уже вставил в проект на C#.


Цитата(AtroX @ 9.9.2005, 15:55)
Зачем COM было делать? =)

А я вот такой подход во многих книгах встречал-С++ как COM

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)