分全给出,各位大侠看一看为什么动态库中的窗体调不出来:。。。。
动态库中定义TForm2
//---------------------------------------------------------------------------
#ifndef DllFormH
#define DllFormH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class __declspec(dllexport) TForm2 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm2(TComponent* Owner);
__fastcall TForm2(TComponent* Owner, TApplication* pApp);
};
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "DllForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TApplication *pDllApp=0;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner, TApplication *pMainApp)
: TForm(Owner)
{
if (!pDllApp)
pDllApp=Application;
Application=pMainApp;
}
void __fastcall TForm2::Button1Click(TObject *Sender)
{
this->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormDestroy(TObject *Sender)
{
Application=pDllApp;
}
//---------------------------------------------------------------------------
调用:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "DLLCall.h"
TApplication* pMainApp=0;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
if (!pMainApp)
pMainApp=Application;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TForm2* pfrm=new TForm2(Application->MainForm,pMainApp);
pfrm->ShowModal();
delete pfrm;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if (pMainApp)
Application=pMainApp;
}
//---------------------------------------------------------------------------
总在任务栏上产生Form1, For2两个窗口的指示,并可互相切换,Form2不能象对话框一样,这是怎么回事?大家给我看一下,分数全给