Внешний символ без ссылки во время вызова функции DLL - PullRequest
0 голосов
/ 20 февраля 2011

У меня проблемы с реализацией класса в DLL таким же образом, как это объяснено здесь , У меня есть мой интерфейс со всеми методами, объявленными как виртуальные, у меня есть мой класс, который реализует интерфейс, и у меня есть метод, который должен создать объект класса. Проблема здесь, когда я пытаюсь использовать это, я получаю ошибку «внешнего ссылочного символа». Почему?

class IXYZ
{
    virtual void XXX() = 0;
};

class XYZ : public IXYZ
{
    void XXX();
}

#ifdef __cplusplus
    extern "C" __declspec(dllexport) IXYZ* __stdcall GetIXYZ();
#endif

и я использую его в своей программе win32 с:

IXYZ *myvar = GetIXYZ();

В моей exe-программе я включил .h файл dll

1 Ответ

1 голос
/ 20 февраля 2011

Если вы правильно определили функцию в DLL и она правильно экспортирована, то единственное правдоподобное объяснение состоит в том, что с использованием файла .lib в приложении, которое использует DLL, что-то не так.

...