Ayuda en usar Qt en un dll



  • Bueno mi problema es que tengo un dll que es un "plugin" para un multiplayer, este no es un dll común, es un proyecto vacío de VS 2010 y con unas funciones que son exportadas, de esta forma el servidor multiplayer la puede cargar la dll, he hecho una clase y he incluido los directorios para incluir de Qt, todo compila bien pero no funciona..

    el .cpp de la clase es el siguiente
    @
    QTFtp::QTFtp(void)
    {
    inst = 0;
    inst = new QFtp();
    //logprintf("New instance created handle %d", inst);

    }

    void QTFtp::Connect(char *host, int port)
    {
    inst->connectToHost(host, port);
    //logprintf("Connecting to host %s on port %d handle %d", host, port, inst);
    }

    void QTFtp::Login(char *username, char *pass)
    {
    inst->login(username, pass);
    //logprintf("Login with username %s and pass %s handle %d", username, pass, inst);
    }

    QTFtp::~QTFtp(void)
    {
    delete inst;
    }
    @

    el header de la clase es este

    @#pragma once

    class QTFtp
    {

    public:
    QTFtp(void);
    ~QTFtp(void);
    void Connect(char *host, int port);
    void Login(char *username, char *pass);

    QFtp *inst;
    };
    @

    Y la uso de la siguiente forma

    @
    QTFtp *var;
    var->connectToHost("127.0.0.1");
    var->Login("Jovanny", "contra");
    @

    He probado este mismo codigo en una aplicación común de Qt y funciona pero en esta dll no...
    Si se preguntan por que la clase es por que no nada mas se va a usar una "instancia" de ftp, si no que pueden ser muchas o pocas y lo hago de esta forma para no batallar con el handle que viene siendo el
    @inst = new QFtp();@

    Ya incluí los .lib y agregue esto en definiciones de preprocesador
    UNICODE
    WIN32
    QT_LARGEFILE_SUPPORT
    QT_DLL
    QT_CORE_LIB
    QT_NETWORK_LIB

    Si no entienden de que hablo aquí una imagen
    !http://i.imgur.com/DoU2u.png()!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.