我的几个FORM都是从1个FORM继承下来的我要把那个BASE FORM 放在DLL 中,请问怎么做啊

解决方案 »

  1.   

    把那个窗口加到dll的工程中就行了
      

  2.   

    给你一个CB的例子extern "C" __declspec(dllexport) void ShowForm(void);void ShowForm(void)
    {
            TTFormTest * p = new TTFormTest(NULL);关键是这里
            //pascal
            //f:=Tform.Create(nil);
            p->Parent = NULL;
            p->ShowModal();
            delete p;        
    }
    用到的时候
    extern "C" __declspec(dllimport) void ShowForm(void);void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            ShowForm();
    }你自己写写看
      

  3.   

    我不是这个意思,我用的就是CB我的意思是,FORM是在DLL里的EXE里的FORM是从DLL里的那个FORM继承下来的
      

  4.   

    那恐怕得把一些函数写到dll中吧,继承代码写在dll里,实现使用的时候写在主程序里
      

  5.   

    用LIBRARY关键字,添加所用的单元,并且定义一个接口函数以备调用用,就OK了。
      

  6.   

    大概不行吧,基类放在Dll中,派生类放在exe中,那说明是两个不同的项目,一个是library,
    一个是Application,那你exe中的类是怎么定义的呢?有dll的源码的话exe肯定也包含dll中的
    基类了,没有源码的话你连类都定义不出,不懂你的意思。
    好像没有源码,基类在库中的只有用bpl文件,作为运行期文件一起带着走,我看到的TDockableForm
    就是这样的
      

  7.   

    偶也不是太明白楼主的意思,楼主是不是想要这个效果:调用某个Dll的时候,直接出现Dll里面的窗口.如果是这样的话,调用之前建个创建Form的接口.愚见.我才开始学
      

  8.   

    “我的几个FORM都是从1个FORM继承下来的”怎么继承啊?教教我
      

  9.   


    ff:TForm; 那个BASE FORM 放在DLL ff:=TForm.Create(BASE FORM名);
    ff.ShowModal()