Нативные структуры
typedef struct tB {
int B1;
int B2;
} sB;
typedef struct tA {
int A1
const char* str1;
sB* B1;
} sA;
extern "C" __declspec(dllexport) void on1(const sA* a);
Вопрос, как вызвать on1 и передать корректную sB?
Я так понимаю, что загвоздка в том, что она передается по ссылке.
Если я ее убираю то все нормально, а сней, вылетает исключение, что нарушена память.
public struct sB
{
public Int32 B1;
public int32 B1;
}
public struct sA
{
public Int32 A1
public String str1;
public sB B1;
}
[DllImport("MyDLL.dll", EntryPoint = "on1", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public extern static void on1(ref sA a);
Здравствуйте, Аноним, Вы писали:
Включить unsafe и написать:
public unsafe struct sA
{
public Int32 A1
public String str1;
public sB* B1;
}
Здравствуйте, Аноним, Вы писали:
А>Нативные структуры
А>А>typedef struct tB {
А> int B1;
А> int B2;
А>} sB;
А>
Кстати, эти int-ы скольки разрядные?