关于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这样更通用。