一点击材质编辑器MicroStation CE就崩溃


【现象】

软件此前使用正常,但是某一天突然在试图打开材质编辑器时直接崩溃,卸载重装软件后也无法解决。

【原因和解决方法】

原因:

从用户提供的异常日志中 Exception Logs ,显示在启动“材质编辑器”工具时未找到的DLL。

Code: 0XC06D007E
Description: DLL not found (look for PATH or name conflicts)

Stack Dump
Exception: 0xc06d007e @ 0xc757cf19
0: 0000002fc77fcb50 00007ffbeb146aea 0000000000000000 0000000000000004 00000174f3560000 0000002fc77fcc39 RaiseException+0x69
1: 0000002fc77fcbf0 00007ffbeb145d61 0000002fc77fcb80 00000174fd3e0370 0000000000000002 0000002fc77fceb0 MateditManager::MaterialGalleryStopMaterialPreview+0x27c3e
2: 0000002fc77fcc60 00007ffbeb0d2d9d 00000174b8d774e0 00007ffbeb19c0c8 0000000000000068 0000000000000080 MateditManager::MaterialGalleryStopMaterialPreview+0x26eb5
3: 0000002fc77fcca0 00007ffbeb0d4e48 00007ffcc3ad40f8 0000000057600000 00000174fd3e0370 00007ffca1549556 MateditManager::RegisterMateditListener+0x61
4: 0000002fc77fcd60 00007ffbeb0d65e8 00000174fd3e0370 0000002fc77fcec0 0000000000000000 0000002fc77fceb0 MateditManager::UpdateMaterialGalleryImages+0x1ef8

Input Queue History
{ 0} 9:14:023.692 <MDL SILENTLOAD MATEDIT> from Dialog
{ 0} 9:14:012.311 <FIELD UPDATE ALL MODEL > taskId=[FIELDHANDLER] from MDL

从用户提供的异常日志中,显示在启动“材质编辑器”工具时未找到的DLL。

原因是MicroStation从文件夹C:\Windows\System32\加载了两个错误版本的同名dll:zlib1.dll、libxml2.dll。

解决方法:

发现是用户安装的中行网银的程序中,中行网银将属于自己的这两个同名DLL:zlib1.dll、libxml2.dll直接写入到系统文件夹C:\Windows\System32\下,导致MicroStation优先从系统文件中加载了这两个错误的DLL引起的。

可以通过以下方法修复此问题:

方法一: 将zlib1.dll、libxml2.dll 从C:\Program Files\Bentley\MicroStation 2023\MicroStation\MdlSys\Assneed\Vue\Application\ 文件夹下,移动到 C:\Program Files\Bentley\MicroStation 2023\MicroStation\ 文件夹,重新启动MicroStation后问题消失。

方法二: 从System32文件夹中删除上述DLL也可以解决此问题,并建议反馈给第三方应用程序,在C:\Windows\System32\文件夹中安装zlib1.dll、libxml2.dll是不太规范的做法,不应该将这两个DLL放到系统文件夹下,而是放到自己的安装目录下。