首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于DLL中封装Form的有关问题

2012-04-10 
关于DLL中封装Form的问题DLL:封装了一个Form导出函数:extern C TForm * _stdcall ShowWeather(TForm *F

关于DLL中封装Form的问题
 
DLL:
  封装了一个Form;

  导出函数:
  extern "C" TForm * _stdcall ShowWeather(TForm *Form);
//
  TForm * _export _stdcall ShowWeather
{
  weather = new Tweather(NULL);
  if(Form->Left-weather->Width>0)
  {
  weather->Left = Form->Left - weather->Width;

  }else{

  weather->Left = Form->Left +Form->Width;
  }
  weather->Top =Form->Top+55;
  return weather;
}

应用程序在正确调用导出函数后:
TForm* Form2=NULL;
  Form2= ShowWeather(MainForm);
  如果 Form2->ShowModal();delete Form2; 这种情况下是正确的

  但是:AnimateWindow(Form2->Handle,1000,AW_SLIDE|AW_HOR_POSITIVE);就会在窗体出现过后,
  报 "acceess violation at base address 0xxxxxxxxx"错误,


我现在就想要 AnimateWindow的效果,不知诸位有何见解?

[解决办法]
AnimateWindow写在dll的onshow里试试
[解决办法]
如果带界面的话,我一般都是用Activex这样更通用。

热点排行