У меня есть этот метод, который мне нужно вызывать и использовать в моем приложении, но я не знаю, действительно знаю, как именно это сделать.
Это функция, которую мне нужно вызвать.
[DllImport(dll_Path)]
public static extern int DTS_GetDataToBuffer(int Position, int Length, char* Buffer, int* DataRead);
В моем коде у меня есть эта функция, и мне не хватает ее реализации.
internal static void GetDataToBuffer(int position, int length, out byte[] data, out int dataRead)
{
unsafe
{
// the code I need
}
}
Я думаю, что большинство из них очень самоочевидно. Мне нужно реализовать последнюю функцию, чтобы я мог иметь возможность считывать данные в буфер и объем считанных данных (который на самом деле должен быть таким же, как data.Length, но производитель имеет это как отдельную опцию, поэтому мне это нужно ).
Кто-нибудь может помочь? Это достаточно ясно?
Спасибо
Редактировать: вот неуправляемое объявление из файла .h. Надеюсь, это поможет.
extern NAG_DLL_EXPIMP int DTS_GetDataToBuffer(int Position,
int Length,
unsigned char *Buffer,
int *DataRead );
Правка № 2:
Позитон - позиция, с которой начинается чтение данных.
Длина - объем данных для чтения (это будет размер буфера).
DataRead - фактический размер данных, который был прочитан.