Я новичок в создании библиотек DLL в C ++, вот мой код
//header.h
class A
{
virtual int funct()=0; //Pure virtual function
};
Проект B (который генерирует DLL при компиляции)
#include "header.h"#define B_DLL __declspec( dllexport )
class B_DLL B: public A
{
//Definitions of the 3 pure virtual functions are here
int funct()
{
//definition go here
}
};
Теперь я создаю экземпляр класса A и вызываю функц () тогда я получаю ошибку
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.
Как это можно решить с помощью соглашений о вызовах _cdecl или же _stdcall.Я много искал, но не мог найти, как именно эта ошибка может быть решена. Пожалуйста, помогите мне решить эту проблему.
Заранее спасибо
A
является чисто абстрактным классом (интерфейсом), вы не можете инициализировать абстрактный класс или использовать его методы напрямую. Вы должны инициализировать его производнуюB_DLL
вместо.
Других решений пока нет …