VS2015. Код упростил.
Обычное ромбовидное наследование:
class A
{
public:
void f() {};
}
class B : virtual public A
{
}
class C : virtual public A
{
}
class D : public B, public C
{
}
Такой код:
B* b = new B();
b->f();
Приводит к следующему исключению:
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
Прав ли я, что это из-за ромбовидного наследования и как правильно вызвать функцию f()?
Прошу прощения проблема была в недособранных dll.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости