У меня есть прототип C ++ API
void Func(int& size);
Как я могу перевести его на P / Invoke в C #?
Из того, что я знаю, если я использую
public static extern Func(ref int size);
, функция получит указатель на int вместо значения.
(Упс ... имел ввиду это как ответ, а не комментарий).
И когда вы вызываете его из C ++, функция также получит указатель. Как еще вы думаете, ссылки реализованы? Func () будет рассматривать этот указатель как ссылку, поэтому не важно, как он туда попадет.