IntPtr C # to C ++ void * - PullRequest
       27

IntPtr C # to C ++ void *

0 голосов
/ 13 марта 2019

Я новичок в C #, и меня попросили создать код C #, который использует C ++ DLL.

Для функций из C ++ DLL требуется параметр void *, поэтому я отправляю параметр IntPtr изКод C #

Но в конце этой функции мой указатель выглядит как NULL.Я что-то упустил?

Вот мой код C #:

int somme = 0;
IntPtr deviceHandle = new IntPtr();
uint[] SpiConf = new uint[7];
somme = Opening(deviceHandle, SpiConf);
if (deviceHandle == IntPtr.Zero)
{
    Console.WriteLine("deviceHandle is NULL"); // 
}

А вот моя функция из C ++ DLL:

int Opening(void* deviceHandle, unsigned char SpiConf[])
{
    wchar_t devPath;
    unsigned long devPathsize = 0;
    unsigned short VID = 0x4d8;
    unsigned short PID = 0xde;
    int res;

    deviceHandle = Mcp2210_OpenByIndex(VID, PID, 0, &devPath, &devPathsize);
    res = Mcp2210_GetLastError();
    if (res != E_SUCCESS)
    {
        //Console.WriteLine("Failed to open connection");
        return -1;
    }
    if (deviceHandle == NULL)
    {
        return -2;
    }
    return 0; // This function returns 0
}

Любая помощь будет очень признателен.

...