На C# написана программа, есть там тип данных List<Tuple<double,double,DateTime>>
, необходимо это передать во встраиваемую библиотеку С++. Kак в С++ именно записать вводные данные? Kаким типом? Скорее всего буду хранить их в массиве структур. Но как провести передачу именно? Библиотеку на С++ буду писать сам. Подскажите пожалуйста.
Как уже подсказали в комментах, удобне будет использовать структуру. DateTime
лучше не передавать в C++ напрямую, а превратить его в что-то иное. Вот пример.
C#:
[StructLayout(LayoutKind.Sequential)]
public struct Data
{
public double d1;
public double d2;
public int year;
public int month;
public int day;
}
[DllImport("CppDll")]
public static extern bool MyCppFunc(int count, Data[] data);
static void Main(string[] args)
{
List<Data> list = new List<Data>
{
new Data
{
d1 = 123,
d2 = 0.5,
year = 2018,
month = 3,
day = 12
},
new Data
{
d1 = 456,
d2 = 0.75,
year = 2018,
month = 3,
day = 15
},
};
MyCppFunc(list.Count, list.ToArray());
}
C++:
typedef struct _MYDATA
{
double d1;
double d2;
int year;
int month;
int day;
} MYDATA;
BOOL WINAPI MyCppFunc(int count, MYDATA * data)
{
for (int i = 0; i < count; i++)
{
printf("d1=%f\n", data[i].d1);
printf("d2=%f\n", data[i].d2);
printf("year=%d\n", data[i].year);
printf("month=%d\n", data[i].month);
printf("day=%d\n\n", data[i].day);
}
return TRUE;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добрый деньЕсть одна форма и user control
Пользователь вводит текстЕсли слово заканчивается на гласную, то заменить окончание на "program"(c #)