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 не нужна
в принципе удобная системка
но на вкус и цвет товарищей нет ...