新手dll被载入后,主程序不响应

新手求助:dll被载入后,主程序不响应
本人刚学dll,自己试着写了一个dll之后,在主程序中调用dll,dll中的窗口正确显示了,但此时dll窗口是活动的,主程序窗口变成非活动窗口,并且不响应任何操作,变灰了。

我猜想,是不是dll此时占用了主程序进程,要让dll窗口和主程序窗口都能响应操作,必须新开线程呢?我还没试过在线程中调用dll窗口。

请各位大大告诉我这是什么原因?

C/C++ code

void __fastcall TForm1::ShowDLLaboutClick(TObject *Sender)
{
     HINSTANCE ins;
     ins = LoadLibrary("./dll/mkabout.dll"); 
  try
  {
     if(ins == NULL)
         throw MyException("Can't Load Library!");  
     FARPROC proc;                                  
     proc = GetProcAddress(ins,"_myAbout");   //一个什么也不做的form
     if(proc == NULL)
     {
         FreeLibrary(ins);
         throw MyException("Can't Get Proc Address!");
     }
     proc();
     if(!FreeLibrary(ins))
     {
         throw MyException("Can't Free!");
     }
  }
  catch (MyException &myException)
  {
      ShowMessage(myException.test);            
   }
}





------解决方案--------------------
dll的窗口是不是模态显示的?
------解决方案--------------------
模态显示是不行的,这样主窗体就处于禁用状态。改成Show方法就行了。

frmAbout->Show();

考虑到窗体的Z-Order问题,你可以将DLL中窗口的FormStyle设置成fsStayOnTop