Unsafe To Safe

  • Автор темы Автор темы Elephant
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
E

Elephant

Как этот код будет выглядеть на C# без использования unsafe?

<!--shcode--><pre><code class='csharp'>for (i=0; i<QueueSz; i++)
{
fixed( byte *tmp0 = ovLaps)
{
OVERLAPPED *ovLapStatus = (OVERLAPPED*) tmp0;
ovLapStatus->hEvent = (uint) PInvoke.CreateEvent(0, 0, 0, 0);
}
}[/CODE]

Спасибо.
 
этот код читает данные с USB. Это кусок который меня интересует.

Код:
// Setup the queue buffers 
byte[][] cmdBufs = new byte[QueueSize][];
byte[][] xferBufs = new byte[QueueSize][];
byte[][] ovLaps = new byte[QueueSize][];

byte j = 0;
for (j = 0; j < QueueSize; j++)
{
cmdBufs[j] = new byte[BufSize];
xferBufs[j] = new byte[BufSize];
ovLaps[j] = new byte[20];

fixed (byte* tmp0 = ovLaps[j])
{
OVERLAPPED* ovLapStatus = (OVERLAPPED*)tmp0;
ovLapStatus->hEvent = (uint)PInvoke.CreateEvent(0, 0, 0, 0);
}
}

// Pre-load the queue with requests 
int len = BufSize;

for (j = 0; j < QueueSize; j++)
InEndpoint.BeginDataXfer(ref cmdBufs[j], ref xferBufs[j], ref len, ref ovLaps[j]);

И можно было бы массив ovLaps объявить как OVERLAPPED сразу и без указателей, но ф-я BeginDataXfer требует ref byte[] ovLaps.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!