Hi, everybody:

I created this very small class on Windows32 and mingw:


main.h
------
#ifdef DLL
#define DLLEXPORT __declspec(dllexport)
#else
#define DLLEXPORT __declspec(dllimport)
#endif


class DLLEXPORT A
{
 public:
  A();
  virtual ~A();


  virtual const char* GetMessage();



};


class DLLEXPORT B : public A
{
 public:
  B();
  virtual ~B();

  virtual const char* GetMessage();



};


main.cpp
----------
#include <stdio.h>

#include "main.h"


A::A()
{
 printf("A constructor\n");



}


A::~A()
{
 printf("A destructor\n");


}


const char* A::GetMessage()
{
 return "Hello A world";


}


B::B()
{
 printf("B constructor\n");


}


B::~B()
{
 printf("B destructor\n");


}


const char* B::GetMessage()
{
 return "B sides are better";


}


I compiled it using:

     g++ -c main.cpp -DDLL
     ar -r main.a main.o
     g++ -shared -o main.dll main.a -Wl,-output-def,main.def


and it does not export any symbols, but doing a:


     g++ -shared -o main.dll main.o -Wl,-output-def,main.def


exports all classes and methods perfectly. 


Any ideas? 


ernesto

_______________________________________________
Help-gplusplus mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to