Кроссплатформенный нативный / управляемый интерфейс - PullRequest
1 голос
/ 31 августа 2010

У меня есть несколько собственных библиотек C ++ и таких, которые мне нужно предоставить для управляемого (в данном случае C #) кода. Мне нужно получить как можно больше скорости.

Я хотел бы использовать некоторые классы для упрощения взаимодействия, что означает смешанный код, но это не является обязательным требованием.

Требуется, чтобы он был кросс-платформенным, в худшем случае - для Windows и Linux. Таким образом, стандарт / clr не может быть и речи.

Мои опции: / clr: pure или / clr: safe, или встраивание Mono в слой промежуточного уровня. У меня вопрос, что будет лучше (лучшая производительность и простота разработки и последующего использования).

В библиотеках, с которыми мне нужно работать, интенсивно используются указатели и иногда общие указатели, что заставило меня подумать, что слой C ++ / CLI будет проще. Я написал простое приложение для тестирования использования некоторых объектов и скомпилировал его с помощью / clr: pure, он не связывался с собственным модулем, но работал под Windows и Linux.

1 Ответ

0 голосов
/ 31 августа 2010

Используйте P / Invoke.

Использование «чистого» сделает это намного медленнее, чем я видел, особенно хруст для чисел (шифрование).

...