Взаимодействие и CRL Деятельность - PullRequest
0 голосов
/ 29 июня 2011

Надеюсь, этот вопрос не помешает правилам StackOverFlow FAQ

Таким образом, при использовании библиотек, которые написаны, например, на C ++, и это означает, что у нас есть некоторый код в этих DLL, который будет выполняться, когда в этом случае будет выполнено программное обеспечение, будет ли эта часть кода выполняться CLR

Мне это нужно, потому что мы планируем разработать программное обеспечение и некоторые Angry Algorithms, я думаю, будет лучше программировать их на C ++, но Visual C # предоставляет нам некоторые инструменты, которые мы не можем найти в C ++ (Linq, Anonymous и т. Д.).

1 Ответ

1 голос
/ 29 июня 2011

Вы можете использовать библиотеки DLL, созданные в C ++, внутри вашего проекта C #, и, как вы уже знаете, вы должны сделать вызов взаимодействия. Это переключает контекст на небезопасный, поэтому код, вероятно, выполняется вне CLR. Это означает, что вы теряете параметры переносимости, которые дает вам CLR. Например, приложение на основе C # будет работать в Windows и Windows Phone, но добавление вызовов взаимодействия будет работать только в Windows (или любой другой системе, для которой была скомпилирована DLL).

Но обычно это не большая проблема.

Также смотрите эту тему: http://forums.devshed.com/net-development-87/using-a-c-dll-in-c-107829.html

...