Я хотел бы интерпретировать вывод следующей неуправляемой функции:Преобразовать IntPtr на символ ** в C#
afc_error_t afc_get_device_info (afc_client_t client, char ***device_information)
Я импортировать библиотеки DLL с кодом:
[DllImport("libimobiledevice.dll", CallingConvention = CallingConvention.Cdecl)]
internal static extern short afc_get_device_info(IntPtr client, out IntPtr info);
Пока Мне только нужно было преобразовать ответ в строку Marshal.PtrToStringAnsi
было хорошо. Однако я не знаю, как преобразовать этот IntPtr обратно в char array.
Вы импортируете две различные функции, с разными именами и разным количеством параметров ... И один из них был «char ***» ... (я должен сказать, что «***» - это что-то редкое даже в мире C :-)) – xanatos
@xanatos Да, сэр, я исправил это имя. char *** - это потому, что он возвращает char ** (например, если он возвращает строку, это будет char ** outputString). –
@geislza, а второй пример - пример несвязанного метода той же библиотеки, который вы используете, правильно? – xanatos