分全给出,各位大侠看一看为什么动态库中的窗体调不出来:。。。。

AladingKing 2002-11-18 04:55:59
动态库中定义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不能象对话框一样,这是怎么回事?大家给我看一下,分数全给

...全文
18 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
AladingKing 2002-11-18
  • 打赏
  • 举报
回复
是不是将整个窗体类输出不行?能不能类似VC那样将界面类整个输出。
不过,如果我想将窗体非模态化输出的话,这样是不是可就不行了?
kingfish 2002-11-18
  • 打赏
  • 举报
回复

{
TForm2* pfrm=new TForm2(Application->MainForm,pMainApp);
pfrm->ShowModal();
delete pfrm;
}
这些我想你写在Dll中不是挺好的吗,然后export一个显示函数

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧