class A {...public: A(char*); ~A(); int foo1(int); int foo2(int); int foo3(int);}
class WrapA{ A* impl;public: WrapA(char* a) { impl = new A(a); } ~WrapA() { delete impl; }; virtual int foo1(int a) { return impl->foo1(a); }; virtual int foo2(int a) { return impl->foo2(a); }; virtual int foo3(int a) { return impl->foo3(a); };}//функция спец-враппер для конструктораWrapA* createWrapA(char* a){ return new WrapA( a );}
pexports -h include\mapacces.h my.dll > my.defdlltool -Dmapacces.dll -dmapacces.def -llibmapacces.a -k
pexports ALut.dll > alut.def
LIBRARY ALUT.dllEXPORTSalutExit@0 = alutExit @3alutInit@0 = alutInit @3 .... и т д согласно правилам именования stdcall ( правда я не понял, почему не нужен символ "_"? :( )
dlltool -DALut.dll -dalut.def -llibalut.a
extarn "C" __stdcall void alutInit();int main(int argc, char** argv){alutInit();}