P/Invoke библиотека чисто C++?

Действительно ли это возможно к P/Invoke чистая библиотека C++, или это должно быть перенесено в C?

5
задан Trott 18 September 2011 в 04:33
поделиться

2 ответа

Библиотеки C ++ могут быть вызваны P /, но вам нужно будет использовать "depends", чтобы найти искаженные имена методов (такие имена, как "@ 0! Classname @ classname @ zz ") и, например, методы экземпляра используют соглашение о вызове ThisCall в вызове p / и передают ссылку на экземпляр в качестве первого аргумента (вы можете сохранить результат конструктора в IntPtr).

2
ответ дан 15 December 2019 в 06:24
поделиться

Имя "чистой" библиотеки C ++ будет изменено компилятором, поэтому будет трудно получить правильное объявление P / Invoke. А метод C получает подчеркивание в начале, что может не будет в C ++. А метод C ++ нуждается в этом экземпляре в качестве первого параметра, вы должны указать его самостоятельно.

Я думаю, что вам нужно обернуть ваш C ++ API в C-совместимую серию методов.

1
ответ дан 15 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: