Тема: Sigel
Показать сообщение отдельно
Старый 09.11.2007, 00:31   #30
jimon
 
Сообщений: n/a
Re: Sigel

HolyDel

ну я обычно юзаю ООП с интерфейсами

вот практический пример в 4 файла
для конечного проекта надо только IEngine.h и Main.cpp

IEngine.h
#ifndef HIENGINEH
#define HIENGINEH

class IEngine
{
virtual void Function1() = 0;
virtual void Function2() = 0;
};

#ifdef WIN_DLL_EXPORTS
	#define export_api __declspec(dllexport)
#else
	#define export_api __declspec(dllimport)
#endif

export_api IEngine * CreateEngine();
#endif
CEngine.h
#ifndef HCENGINEH
#define HCENGINEH

#include "IEngine.h"

class CEngine:public IEngine
{
CEngine();
~CEngine();

void Function1();
void Function2();
};
#endif
CEngine.cpp
#include "CEngine.h"

CEngine::CEngine()
{
}

CEngine::~CEngine()
{
}

void CEngine::Function1()
{
}

void CEngine::Function2()
{
}

IEngine * CreateEngine()
{
return new CEngine();
}
Main.cpp
#include "IEngine.h"

void main()
{
IEngine * engine = CreateEngine();
engine->Function1();
engine->Function2();
delete engine;

return;
}
ета конструкция удобна чем :
1)кидаем IEngine.h,CEngine.h,CEngine.cpp в компилятор
и получаем dllку + lib файл
2) даем юзеру dllку, lib файл и IEngine.h он доволен
и делает прогу blabla.exe
3) если меняются только CEngine.h и CEngine.cpp
то можно просто заново скомпилить дллку
и заменить ею старую дллку, перекомпиляция blabla.exe не нужна

в принципе удобная системка
но на вкус и цвет товарищей нет ...
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо за это полезное сообщение:
HolyDel (19.06.2011), ІГРОГРАЙКО (14.11.2013)