TOpenDialog选择文件时异常卡死并退出程序的问题

Posted YanJinrong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TOpenDialog选择文件时异常卡死并退出程序的问题相关的知识,希望对你有一定的参考价值。

Delphi10.4.2在WIN10中,TOpenDialog在选择文件时,如果文件无法识别的,或是识别错误的,点击文件、或预览缩略图,或是选中文件后点击鼠标右键,就会报指针错误,或是整个程序直接异常卡死,然后整个程序就会被强制中断退出。但是在IDE里又可以正常打开,只是编译后执行就死机。

最典型的情况是用手机、数码相机拍的高分辨率图片,然后通过Adobe PhotoShop CC修改过的图,无论存成什么格式,大概率都会引起这种错误,

Delphi的对话框是调用的WINDOWS API,猜测就是文件格式无法识别导致的内存出错,折腾了很久,最后发现只需要引用SHDocVw单元即可。

SHDocVw是IE内核,应该是Windows的文件打开对话框调用了IE来预览文件,浪费了很多脑细胞,总算是解决了。

测试环境:Win10 Delphi10.4.2,其他版本没测试过,不知道会不会有相同的问题(D7无问题)

以上是关于TOpenDialog选择文件时异常卡死并退出程序的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何定位 TOpenDialog

更加强健的线程模型,解决线程卡死,退出异常情况

BCB中选择文件对话框TOpenDialog过滤后缀名使用方法

更加强健的线程模型,解决线程卡死,退出异常情况

使用 TOpenDialog 选择目录

Delphi的打开文件对话框-TOpenDialog