У меня есть неуправляемая DLL с функцией, которая принимает указатель в качестве аргумента. Как передать указатель из С#, не будучи «небезопасным»?
Вот пример кода:
[DllImport(@"Bird.dll")]
private static extern bool foo(ushort *comport);
Соответствующая запись в шапке:
BOOL DLLEXPORT foo(WORD *pwComport);
Когда я пытаюсь просто разыменовать его (&comport
), я получаю сообщение об ошибке: "Указатели и буферы фиксированного размера могут использоваться только в небезопасном контексте".
Как мне обойти это?