Это мой код:
[DllImport(@"C:\Program Files (x86)\UF01\UF01.dll", EntryPoint = "UF01_UA01_Entrees", CallingConvention = System.Runtime.InteropServices.CallingConvention.Winapi)]
unsafe internal static extern Boolean UF01_UA01_Entrees(byte Device, byte Module, out ushort* TableData_12bit);
ushort* arr = stackalloc ushort[8];
if (UF01_UA01_Entrees(1, 1, out arr))
{
}
Мой код работает отлично, но как мне получить значения, хранящиеся в указателе?
Я написал тестовую программу на C ++:
void UA01(byte nb_device, byte module){
WORD TableData_12bit[8];
if(UF01_UA01_Entrees(nb_device, module, TableData_12bit)){
for(int chan=0; chan<MAX_ANALOG_CHANNEL_IN; chan++){
printf("M%1d%1d:0x%3x ", module, chan+1, TableData_12bit[chan]);
}
}else{
printf("\nEchec de lecture");
}
}
Этот тест работает, но в c # я не могу получить значения из указателя.Можете ли вы помочь мне?
Спасибо:)