如何解决GLScene的GLSceneViewer组件导致Delphi 10.3 IDE崩溃问题
GLScene for Delphi 10.3 TGLSceneViewer 报错126解决方案
- 根因匹配:你排查到的CUDA单元动态拼接DLL文件名的逻辑即为问题来源:系统未安装CUDA运行时、或GLScene编译时CUDA相关条件定义错误的情况下,DLL名称数组会出现空值或字符串截断,最终拼接出非法的
d.DLL文件名触发126加载错误,直接导致IDE崩溃。- 不需要使用CUDA功能的场景:直接将
CUDA_Runtime.pas、CUDA.FourierTransform.pas两个单元从GLScene的设计时包编译列表中移除,重新编译安装设计时包即可解决报错。 - 需要使用CUDA功能的场景:先在系统中安装对应版本的CUDA运行时,再修改GLScene编译选项,补充正确的CUDA版本标识,确保DLL名称数组可生成正确的CUDA运行时DLL文件名。
- 不需要使用CUDA功能的场景:直接将
- Newton物理引擎DLL缺失处理:
- 不需要使用Newton物理引擎的场景:直接将
Imports.Newton.pas从设计时包编译列表中移除,重新编译安装即可。 - 需要使用Newton功能的场景:下载对应版本的Newton物理引擎DLL包,其中后缀带
d的为调试版、带s的为静态链接发行版,将匹配架构的DLL放入Delphi 10.3的bin目录即可,设计时组件加载时会优先读取IDE运行目录下的DLL。
- 不需要使用Newton物理引擎的场景:直接将
- 临时规避方案:如果暂时不想修改GLScene编译配置,可以在64位系统的SysWOW64目录、32位系统的System32目录下新建空白DLL命名为
d.DLL,可临时规避加载报错,但该方案会导致CUDA相关功能异常,不建议长期使用。
内容的提问来源于stack exchange,提问作者AnotherFineMess
相关产品推荐
相关产品推荐

