This is a mirror of official site: http://jasper-net.blogspot.com/

Смешиваем managed и native код

| Sunday, October 17, 2010
Вчера я заинтересовался такой проблемой: каким образом можно использовать большую библиотеку, написанную на чистом C++, в проекте на C#? Первое, что пришло в голову — это экспорт функций в native dll, а потом импорт этих функций в C# с помощью P/Invoke. У меня уже был подобный опыт в одном из моих проектов, и, сказать по правде, больше мне такими извращениями заниматься не хочется  . Пораскинув мозгами, я вспомнил, что с выходом .NET Framework в C++ добавились некие managed extensions, которые, вроде как, позволяют писать под .NET на C++. Покурив гугл, я выяснил, что действительно, такую штуку можно реализовать, и по удобству она не будет идти ни в какое сравнение с P/Invoke. Сегодня утром я набросал небольшой примерчик смешанной библиотеки на C++ и тестовый проект на C#, который её использует. За кровавыми подробностям добро пожаловать под кат  .

Итак, нашей целью будет написание некоего кода на native C++, в котором также будут иметься некоторые управляемые типы. А чтобы было ещё интереснее, написать надо так, чтобы  библиотеку на C++ можно было скомпилировать как в чистую native DLL безо всяких намёков на managed code, так и в смешанную сборку.

Начнём с создания нового проекта на чистом C++.

Read more: Автоматизируй это

Posted via email from .NET Info

0 comments: