Поиск

Взаимодействие с неуправляемым кодом

Продолжительность жизни нового языка или среды разработки сильно ограничена, если он или она игнорируют унаследованные системы и программы, предоставляя лишь средства для написания новых систем. Независимо от привлекательности новой технологии ее создатели должны учесть, что какое-то время ей придется сосуществовать со старой технологией. Поэтому команды разработчиков .NET и С# решили облегчить программистам взаимодействие с существующим кодом посредством неуправляемого (unmanaged) кода, т. е. кода, которым нельзя управлять (контролировать) средствами поддержки периода выполнения .NET. В этой главе я расскажу о трех основных примерах неуправляемого кода в .NET, а именно:

  • Platform Invocation Services позволяют коду .NET обращаться к функциям, структурам и даже к обратным вызовам в существующих неуправляемых библиотеках DLL;
  • небезопасный код (unsafe code) позволяет С# -программисту использовать в приложениях такие конструкции, как указатели, отдавая управление этим кодом на откуп исполняющей среде .NET;
  • взаимодействие с COM (COM interoperability) под этим понимается способность кода .NET применять компоненты СОМ, а приложений СОМ — компоненты .NET.