У меня есть следующая C# struct:
[StructLayout(LayoutKind.Sequential)]
struct DATA
{
public int x;
public int y;
};
У меня также есть переменная этого типа структуры с именем my_data
, заполненная некоторыми значениями:
DATA my_data;
my_data.x = 10;
my_data.y = 12;
Я могу успешно передать эту переменную (закрепив ее, получить ее реальный адрес и использовать P / Invoke) в программу C (созданную для этой цели) и из этой программы получить значения 10
и 12
.
Теперь я пытаюсь умножить каждое из этих двух значений на 2
и заполнить структуру C# (из C) результатом этих умножений, но безуспешно. Как это можно сделать?
РЕДАКТИРОВАТЬ
Если вместо struct
у меня есть class
, то он работает нормально:
[StructLayout(LayoutKind.Sequential)]
public class DATA
{
public int x;
public int y;
};