Я разрабатываю программу, которая использует файл драйвера dll. Я успешно связывал DLL в мой код, но есть проблема с одним методомC++/C# Преобразование типа совместимости
Dll функции:
word NdEnumDevices(const char* const ** devs);
Я связал его с C#, как этот
[DllImport("NeurobitDrv.dll")]
public static extern ushort NdEnumDevices(ref string[] devs);
Как я не имеют большой опыт работы с C++. Я действительно не понимаю, что означает const char* const ** devs
. Я знаю, что этот аргумент принимает массив строк, но я только получить один элемент, где должен быть 3
И выкидывает нарушение прав доступа Exception
Может кто-нибудь сказать мне, какой тип я должен использовать в C#? ?
Я работал вокруг него, просто жёстко массив строк с именами устройств, и она работает просто отлично: D
Я бы предположил, что это должна быть строка ',' '. Кто-то еще может объяснить 'const'-ness или ссылку на статью. –
Nope. Я уже пробовал это –
'const char * const **' означает указатель на указатель на константный указатель на постоянный символ. 'const char *' используется для c-строк. Вероятно, вам не хватает уровня косвенности (т. Е. '**' part) – OMGtechy