QLibrary - importar uma classe

Eu tenho uma biblioteca QT e quero importá-la em outro projeto.

Agora, como quero que, mesmo quando modifique a biblioteca, o outro projeto não precise ser compilado novamente, comecei a usar o QLibrary.

Mas ... não consigo importar uma aula. Ou melhor, posso importar a classe, mas não consigo acessar seus métodos.

Este é o exemplo que eu fiz.

Esta é a declaração de classe:

class TESTDLL_LIBSHARED_EXPORT TestDLL_lib
{

public:
    TestDLL_lib();

    int a;
    int b;
    int c;

    int getValues();
}; 

e esta a implementação:

#include "testdll_lib.h"

TestDLL_lib::TestDLL_lib()
{
    a = 10;
    b = 20;
    c = 30;
}

int TestDLL_lib::getValues()
{
    return a+b+c;
}

extern "C" TESTDLL_LIBSHARED_EXPORT TestDLL_lib* create_TestDLL_lib()
{
   return new TestDLL_lib();
}

enquanto este é o arquivo principal, no outro projeto:

#include <testdll_lib.h>
#include <QDebug>
#include <QLibrary>

int main(int argc, char *argv[])
{
    QLibrary library("TestDLL_lib");
    if (library.load())
    {
        typedef TestDLL_lib* (*create_TestDLL_lib_fun)();
        create_TestDLL_lib_fun create_TestDLL_lib = (create_TestDLL_lib_fun)library.resolve("create_TestDLL_lib");

        if (create_TestDLL_lib)
        {
            TestDLL_lib *myClassInstance = create_TestDLL_lib();

            if (myClassInstance)
            {
                //qDebug() << QString::number(myClassInstance->getValues());
                qDebug() << QString::number(myClassInstance->a) + " " + QString::number(myClassInstance->b) + " " + QString::number(myClassInstance->c);
            }
        }

        library.unload();
    }
}

Agora, eu posso acessar todos os valores de dados (a, b, c) do objetomyClassInstance (e, se eu os alterar na DLL, eles também serão alterados no programa sem uma reconstrução), mas não posso chamarmyClassInstance->getValues() porque eu recebo

main.obj:-1: error: LNK2001: unresolved external symbol "__declspec(dllimport) public: int __thiscall TestDLL_lib::getValues(void)" (__imp_?getValues@TestDLL_lib@@QAEHXZ)

Como posso resolver isso? É possível chamar métodos de classes importadas?

Obrigado..

questionAnswers(1)

yourAnswerToTheQuestion