我正在尝试在C#中编排一个固定大小的数组枚举。
以下是C语言中的本地声明:
这是代码示例:
我一直在努力装饰数组以通过考试。
GpioPinMode是一个简单的枚举:
非常感谢。
以下是C语言中的本地声明:
typedef enum GPIO_Dir
{
GPIO_OUTPUT =0,
GPIO_INPUT,
}
GPIO_Dir;
FT4222_STATUS FT4222_GPIO_Init(FT_HANDLE ftHandle, GPIO_Dir gpioDir[4]);
这是代码示例:
GPIO_Dir gpioDir[4];
gpioDir[0] = GPIO_OUTPUT;
gpioDir[1] = GPIO_OUTPUT;
gpioDir[2] = GPIO_OUTPUT;
gpioDir[3] = GPIO_OUTPUT;
FT4222_GPIO_Init(ftHandle, gpioDir);
本机代码没有任何问题。
我没有问题来封装FT_HANDLE。
我尝试了多种选项,但似乎没有什么真正起作用。我一直在尝试多个定义,但都没有成功,例如:
[DllImport("LibFT4222.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern FtStatus FT4222_GPIO_Init(IntPtr ftHandle, [MarshalAs(UnmanagedType.LPArray, SizeConst = 4)] GpioPinMode[] gpioDir);
我一直在努力装饰数组以通过考试。
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
private GpioPinMode[] _gpioDirections = new GpioPinMode[PinCountConst];
GpioPinMode是一个简单的枚举:
internal enum GpioPinMode : int
{
Output = 0,
Input,
}
非常感谢。