Передача структур С++ без виртуальных таблиц через границу DLL?C++

Программы на C++. Форум разработчиков
Anonymous
Передача структур С++ без виртуальных таблиц через границу DLL?

Сообщение Anonymous »

Передача классов через границы DLL — плохая идея из-за неопределенного макета vtable в C++,
но что, если я явно задаю соглашение о вызовах и избегаю виртуальных функций и наследования?

Другими словами, могу ли я безопасно передавать указатели на следующую структуру через DLL?

Код: Выделить всё

struct MyStruct {

int a;
int b;

WINAPI MyStruct(int a, int b)
: a(a), b(b)
{}

void WINAPI SetA(int a) {

this->a = a;
}
};
Было бы безопасно использовать ссылку на такую ​​DLL с другой версией компилятора и т. д.?

Подробнее здесь: https://stackoverflow.com/questions/169 ... l-boundary

Вернуться в «C++»