Pull to refresh

Comments 9

Кроме того, P/Invoke нужен для использования функционала существующих фреймворков и инструментов, написанных на C++ вместо того, чтобы переписывать код с C++ на C#.

Довольно смело, учитывая, что по сути маршалить можно на примитивные типы и структуры, и инвокать функции, которые явно указали extern "C", что уже намекает

Первый раз о таком прочитал, есть примеры для чего такое может быть нужно?

Польза от использования Platform Invoke чаще всего объясняется использованием языков программирования с большИм контролем низкоуровневых процессов (как в случае с C++).

Касаемо удалённых объектов – имеет место быть сценарий, когда нужно выполнить какой-то код в другом процессе или в другом приложеннии на другом комьютере (на удалённом сервере, например).

Кроме того, реализация удалённого объекта может быть замаскирована через интерфейс (как показывает пример с интерфейсом IRandomNumberGenerator, который упоминается в статье), что бывает полезно в больших проектах с неявным использованием логики.

Часто драйверы для разных устройств (видеокамеры, например) имеются только для c++. Используя P/Invoke можно их использовать в программах на c#.

Скоро .NET Core 8 выйдет, а тут про древний .NET Framework. Дайте уже старичку почить в бозе.

Тем более для решения задач такого класса микрософт давно рекомендует юзать gRPC.

Я бы посмотрел на вызов функции WinAPI через gRPC вместо P/Invoke

Ну тут в статье несколько намешено всего в кучу. Есть Remoting, который нужно уже похоронить и забыть, а есть P/Invoke. И в статье как раз почему-то в итоге больше про Remoting написано.

Аналогично, надеялся больше про маршалинг почитать исходя из заголовка

Sign up to leave a comment.

Articles