我正在更新一个现有的GLScene应用程序到Delphi10.3。我安装了最新的GLScene (来自https://sourceforge.net/projects/glscene/),但是TGLSceneViewer组件导致了一个错误。
即使是在一个新的项目中,当我把一个TGLSceneViewer放在表单上时,我也会发现Loadlibrary失败了,错误为126;

按'OK‘和Delphi会崩溃回到Windows桌面;它会在没有任何对话框或错误的情况下杀死IDE。(如您所见,已经放置的TGLScene组件GLScene1不会出错。)
我使用ProcessMonitor试图找到问题(根据对LoadLibrary 126错误的响应);

因此,错误似乎缺少'd.DLL‘。那一定是一个无效的dll名称,所以有什么安装问题吗?
有人遇到这个问题了吗?谢谢!
更新:
因此,我已经挖掘了GLScene源代码,试图找到可能与'd.DLL‘相关的引用。
在下面的屏幕截图('Messages‘部分)中,引用了CUDA_Runtime.pas和CUDA.FourierTransform.pas中构造的dll名称(CUDARTDLLNAMESI + '.dll’和CUFFTDLLNAMESI +‘CUDA.FourierTransform.pas’)。这可能会创建名称'd.DLL‘,除了'DLL’不是在代码中大写?!我只是想找个解决办法。
同样有趣的是,文件“Imports.Newton.pas”指的是四个未包含在安装外部文件夹中的dll文件: newton64s.dll newton64d.dll和newton64s.dll。
同样,我不知道这是否与TGLSceneViewer在设计模式下成功加载相关。

再次感谢你的帮助。
发布于 2021-07-09 10:55:32
因此,在多次尝试识别什么是“d.DLL”之后,我将其缩小到“PhysXWrap32.dll”,因为通过将其重命名为“d.dll”,我得到了一个不同的错误(访问违规),即事情发生了一些变化!事实上,“earth.exe”演示程序在将d.dll放置在exe文件夹并忽略启动时的访问冲突错误后,在一定程度上运行(没有纹理)。
无论如何,它显然是混乱的,所以我尝试了一些其他的GLScene安装。在Delphi10.3IDE中完全安装了所有版本,包已经注册,组件可用,但是当将TGLSceneViewer放在表单上时,我仍然会得到Loadlibrary错误126。
最后,我找到并安装了'GLScene_v1.8_for_RX_10.3_Rio.7z‘,最终没有得到126个错误!我得到了另一个错误,Loadlibrary错误87。这通常与图形驱动程序问题有关。因此,在不同的帖子中,我禁用了英特尔630上的图形,并确保AMD驱动程序是最新的。

在重新启动之后,我终于可以使用TGLSceneViewer了!
所以我已经安装了GLScene v1.8并在Delphi10.3上工作。也许图形卡冲突也与GLScene v2的问题有关,但它显示了一个不同的错误(Loadlibrary 126而不是87)。当我没别的事做的时候我会试试的,哈哈。
谢谢你的帮助和关心。
发布于 2021-07-07 00:22:18
您似乎还没有在系统上正确安装GLScene。
基于您似乎缺少所需的动态库的事实,我猜您已经跳过了GLSCeene分期付款说明中的第2步
您应该始终阅读随附的文档。当您将应用程序分发给最终用户时,这一点尤其重要,因为文档中有关于依赖关系的详细信息,这些依赖关系需要随应用程序一起提供才能正常运行。
https://stackoverflow.com/questions/68272463
复制相似问题