Передача неуправляемого в управляемый указатель int - PullRequest
1 голос
/ 15 февраля 2011

У меня есть DLL, которую я не могу изменить, но она была написана на C ++.Это вызов функции в моей управляемой C # DLL (которую я могу изменить).Есть много параметров, которые нужно передать, но некоторые работают, а некоторые нет.

Нет проблем с передачей «unsigned char *», но есть проблема с передачей «unsigned int ** 1003».* "или" int".

Когда C ++ DLL отправляет int *, я пытаюсь перехватить его в моей C # DLL с помощью" uint * ".Я получаю сообщение об ошибке компилятора, в котором говорится, что невозможно преобразовать параметр из "int *" в "long *".

Я пробовал все виды UInt16, ushort и т. Д., Но всегда получаю похожие ошибки.Как мне вставить этот массив указателей в мою программу?

Ответы [ 2 ]

1 голос
/ 15 февраля 2011

ты пробовал с IntPtr? Я считаю, что он может быть использован для дескрипторов, а также для указателей на целые числа.

0 голосов
/ 15 февраля 2011

Я согласен с Давиде на IntPtr.Вам нужно, чтобы параметр читался как IntPtr.После завершения взаимодействия вы можете выполнить MyIntPtr.ToInt32 () или любое другое преобразование, которое вам понравится.

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