У меня есть C++ DLL с частичной документацией и без доступа к исходному коду. Мне нужно использовать функции этой библиотеки C++ в моем приложении C#. Это то, что я до сих пор:Преобразование функции C++ для использования в C#
[DllImport(cpplib.dll)]
public static extern long someFunctionsWithNoParameters();
Когда я объявляю и вызвать функцию из ++ DLL C в моей C# приложение, как это (функция без аргументов) и чем это называют, это работает, функция возвращает длинное значение, возвращаемое функцией C++.
Однако я не знаю, как обращаться с функциями с указателями или ссылочными параметрами или параметрами, определяемыми как функция C++, так и внутри. Например, эта функция C++:
long functionWithParameters(long &State, char *pName, int nLen)
Это, как объявляется функция (у меня есть доступ к файлу заголовка DLL, но не к источнику). Параметры State и pName объявляются как выходные параметры, а параметр nLen объявлен как параметр. Как объявить эту функцию C++ в моем приложении C# в строке [DllImport] и использовать ее (какую форму параметров я должен пройти и как читать параметры вывода)? Существует ли какое-либо соглашение о конверсии между указателями C++ и ссылочными типами для некоторых типов C#?
Спасибо!
Вопрос слишком широк, чтобы ответить здесь. См. Http://msdn.microsoft.com/en-us/library/ms173184.aspx. Задавайте конкретные вопросы по мере их появления. –