Fonce
Captain
- Registriert
- Feb. 2006
- Beiträge
- 3.376
Hi,
Ich habe da grade ein Problem bei dem ich den Fehler einfach nicht erkennen kann.
Ich teste grade ein wenig rum und bekomme bei meiner Beispielanwendung am ende folgenden Fehler
Habe das gefühl das ich irdendwas mit den desctructoren falsch gemacht habe oder so...
Hier der Code.
IModule und IService sind in einer shared library.
Dispatcher und main.cpp bilden eine Binary welche dann gegen die shared library gelinked ist.
Ich habe da grade ein Problem bei dem ich den Fehler einfach nicht erkennen kann.
Ich teste grade ein wenig rum und bekomme bei meiner Beispielanwendung am ende folgenden Fehler
Habe das gefühl das ich irdendwas mit den desctructoren falsch gemacht habe oder so...
...double free or corruption (fasttop)...
Hier der Code.
IModule und IService sind in einer shared library.
Dispatcher und main.cpp bilden eine Binary welche dann gegen die shared library gelinked ist.
Code:
#ifndef IMODULE_H
#define IMODULE_H
#include <string>
class IModule
{
private:
std::string m_name;
public:
IModule(const std::string& name);
virtual ~IModule();
std::string getModuleName(){return m_name;}
};
#endif // IMODULE_H
Code:
#include "imodule.h"
IModule::IModule(const std::string& name) : m_name(name)
{
}
IModule::~IModule(){
}
Code:
#ifndef ISERVICE_H
#define ISERVICE_H
#include "epdf_global.h"
#include "imodule.h"
class EPDFSHARED_EXPORT IService : public IModule
{
public:
IService(const std::string& name);
virtual ~IService();
virtual void start() = 0;
};
#endif // ISERVICE_H
Code:
#include "iservice.h"
IService::IService(const std::string& name) : IModule(name)
{
}
IService::~IService(){
}
Code:
#ifndef DISPATCHER_H
#define DISPATCHER_H
#include "iservice.h"
#include <iostream>
class Dispatcher : public IService
{
public:
Dispatcher();
~Dispatcher();
void start();
};
#endif // DISPATCHER_H
Code:
#include "dispatcher.h"
Dispatcher::Dispatcher() : IService("EPDF_DISPATCHER")
{
}
Dispatcher::~Dispatcher(){
}
void Dispatcher::start(){
std::cout << "Service "
//<< getModuleName()
<< " started"
<< std::endl;
}
Code:
#include <QCoreApplication>
#include "dispatcher.h"
int main(int argc, char *argv[])
{
Dispatcher dispatcher;
dispatcher.start();
}