Переписать функцию из С++ под C# для микросхемы FT2232HL
От: csm7  
Дата: 24.11.12 11:39
Оценка:
Помогите переписать функцию из FTCSPI.dll для микросхемы FT2232HL
Оригинал на С++ таков

typedef struct FTH_Low_High_Pins{
  BOOL  bPin1LowHighState;
  BOOL  bPin2LowHighState;
  BOOL  bPin3LowHighState;
  BOOL  bPin4LowHighState;
  BOOL  bPin5LowHighState;
  BOOL  bPin6LowHighState;
  BOOL  bPin7LowHighState;
  BOOL  bPin8LowHighState;
}FTH_LOW_HIGH_PINS, *PFTH_LOW_HIGH_PINS;
 
FTCSPI_API
FTC_STATUS WINAPI SPI_GetHiSpeedDeviceGPIOs(FTC_HANDLE ftHandle, PFTH_LOW_HIGH_PINS pHighPinsInputData);


Я переписал на C#

[DllImport("FTCSPI.dll", EntryPoint = "SPI_GetHiSpeedDeviceGPIOs")]
       unsafe public static extern ftc_status SPI_GetHiSpeedDeviceGPIOs(UInt32 pftHandle, [In, Out] ref FTH_Low_High_Pins pHighPinsInputData);
 
 
        [StructLayout(LayoutKind.Sequential)]
        public  struct FTH_Low_High_Pins{
          bool  bPin1LowHighState;
          bool  bPin2LowHighState;
          bool  bPin3LowHighState;
          bool  bPin4LowHighState;
          bool  bPin5LowHighState;
          bool  bPin6LowHighState;
          bool  bPin7LowHighState;
          bool  bPin8LowHighState;
                                       };


но как-то она некорректно работает. Похоже некорректно представил указатель на структуру pFTH_Low_High_Pins.
В теле программы код таков

 FTCSPI.FTH_Low_High_Pins pFTH_Low_High_Pins = new FTCSPI.FTH_Low_High_Pins();
 ft = FTCSPI.SPI_GetHiSpeedDeviceGPIOs(pftHandle, ref pFTH_Low_High_Pins);


Заранее благодарен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.