Где я могу узнать больше о P / Invoke? - PullRequest
2 голосов
/ 05 декабря 2009

В последнее время я много взаимодействую с неуправляемыми библиотеками и продолжаю возвращаться к SO, чтобы задавать вопросы об определенных сигнатурах методов, потому что я не программист на C / C ++ (хотя это не совсем чуждо мне) , Существуют ситуации, когда для одного и того же типа аргумента в двух разных методах требуются две разные сигнатуры P / Invoke (например, иногда я могу использовать ключевое слово out, иногда я должен использовать OutAttribute и т. Д.). Я действительно не вижу каких-либо аргументов за этим.

Есть ли какие-нибудь хорошие ресурсы для лучшего понимания P / Invoke и маршалинга для тех, кто не является экспертом по C / C ++?

Ответы [ 2 ]

3 голосов
/ 05 декабря 2009

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

Вы можете решить эту проблему, только узнав больше о конкретном нативном коде, для которого вы пишете объявление P / Invoke. Это требует его исходного кода и некоторого знакомства с языком. Или хорошие рабочие отношения с первоначальным автором или владельцем кода.

Книга Адама Натана является стандартным справочником.

3 голосов
/ 05 декабря 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...