Unsafe To Safe

Тема в разделе ".NET", создана пользователем Elephant, 17 мар 2009.

Статус темы:
Закрыта.
  1. Elephant

    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]

    Спасибо.
     
  2. Elephant

    Elephant Гость

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

    Код (Text):
    // 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.
     
Загрузка...
Похожие Темы - Unsafe Safe
  1. Num2
    Ответов:
    0
    Просмотров:
    1.283
  2. ezus
    Ответов:
    0
    Просмотров:
    1.300
Статус темы:
Закрыта.

Поделиться этой страницей