multiple forms on a single DLL

Hello everybody,
I would like to store multiple forms on a single DLL exporting a single header file. I
tried creating a common header that look like this:

// common.h
#ifndef COMMON_H
#define COMMON_H

#ifdef DLL_COMPILE
#define MY_IMPEXP __declspec(dllexport)
#else
#define MY_IMPEXP       __declspec(dllimport)
#endif

// exported interface function
extern "C" MY_IMPEXP bool __stdcall Invoke1stForm();
extern "C" MY_IMPEXP bool __stdcall Invoke2ndForm();
#endif

// common.cpp
#include "Common.h"
#include "FirstDllForm.h"
#include "SecondDllForm.h"
/*
//----------------------------------------------------------------------------
bool __stdcall Invoke1stForm()
{
  Dll1st=new TDll1st(NULL);
  Dll1st->ShowModal();
  delete Dll1st;
  return true;  

Quote
}

//----------------------------------------------------------------------------
bool __stdcall Invoke2ndForm()
{
  Dll2nd=new TDll2nd(NULL);
  Dll2nd->ShowModal();
  delete Dll2nd;
  return true;
Quote
}

//-----------------------------------------------------------------------------

The dll compiles fine, I add the *.lib file and include common.h to my project but the
linker raises an "unresolved external" error.
Things only work if I declare the exported function directly on the Form's header file,
ie:

#ifndef Dll2H
#define Dll2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TDll2nd : public TForm
{
__published:    // IDE-managed Components
        TLabel *Label1;
private:        // User declarations
public:         // User declarations
        __fastcall TDll2nd(TComponent* Owner);

Quote
};

extern "C" __declspec(dllexport) bool __stdcall Invoke2ndForm();
//---------------------------------------------------------------------------
extern PACKAGE TDll2nd *Dll2nd;
//---------------------------------------------------------------------------
#endif

and declaring the exported function in Dll2.cpp

then I include Dll1st.h and Dll2nd.h to my project and everything works.

Is there a way to include only one header file for the dll? What am I doing wrong?
Thanks in advance

        Manuel
Manuel Lupato
OBEM software developement