Delphi 开发,当DLL中封装了 TFrame及其子类创建。当代码运行,DLL调用执行到TFrame及其子类创建时,报:Control ‘TFrame’ has no parent windows. 异常,且创建失败。
解决方案是,在DLL调用执行到TFrame及其子类创建前将Exe的Application.Handle赋值给DLL的Application.Handle,即可解决此问题。
其报错原因推测是TFrame及其子类创建时需要获取其父类句柄,当不存在时会获取默认句柄,即Application.Handle;而DLL的Application.Handle默认为空,故而导致报错。