Экспорт интерфейса C в 64 бит

У меня есть готовый к DLL интерфейс в XE7, который я хочу использовать в Visual Studio 2013.
В 32 битах работает нормально, но в 64 битах я получаю исключение при попытке вызвать любой метод класса интерфейса.

Проект Embarcadero XE7 выглядит так:

class Interface
{
public:
virtual ~Interface() { }

virtual void Member1() = 0;
};

class Impl : public Interface
{
public:
virtual void Member1() { }
};

Impl* Impl::GetInstance()
{
static Impl instance;
return &instance;
}

extern "C" Interface* _stdcall _export GetImplementation()
{
return (Interface*)Impl::GetInstance();
}

В Visual Studio я делаю что-то вроде:

typedef  Interface* (_stdcall GetImpl) ();

HMODULE hHandle = LoadLibrary(...);
GetImpl *fGetImpl = NULL;

fGetImpl = (GetImpl*)GetProcAddress(hHandle, "GetImplementation");

if (fGetImpl)
{
Interface *pInterfase = fGetImpl();
if (pInterfase)
{
pInterfase->Member1();
}
}

Я понятия не имею, почему вылетает в 64-битной.

Заранее спасибо.

Ignasi

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]