Существует много статей о конкретной проблеме с использованием DllImport. Увы, часто я вижу разные ответы на один и тот же вопрос. Например, некоторые говорят, что если функция C++ возвращает aa char * и int * strLen, тогда некоторые говорят, что я должен использовать StringBuilder в своем операторе dllImport, а другие говорят о возврате байта [], некоторые из них имеют оператор marshall в dllImport, некоторые нет. Некоторые ответы кажутся необходимыми из-за старых версий C#/.net.DLLImport C++ функции с char * input as и параметры вывода
Итак, вопрос: если вызов dll из C++ довольно прост, без каких-либо странных соглашений о вызовах или других странных элементов, какими должны быть соответствующие функции DllImport, если у вас есть вывод char * и размер или ввод char * и размер ?
c++ .h
bool SendString(const char* pSendStr, long strSize);
bool ReadString(char* pReadStr, long& readStrSize);
Каковы соответствующие DllImports? замените строку instr и outstr на строку? StringBuilder? символ []? байт[]? Требуется ли какое-либо заявление маршала?
'Const символ *' == '' string' и символ * '' == StringBuilder' (обычно) – leppie
насчет полукокса *** –